Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибки css рендера, как исправить?

Давид Мейстер Мастер (2089), на голосовании 6 месяцев назад
Есть вот такая фигура на cssСделанная с помощью трёх элементов (должно быть именно 3 элемента)
Полный код фигуры, можно вставить в html файл и она будет отображаться
 






Проблема в том что между стыками есть расстояние которе происходит из-за ошибки рендера (т.к. стыки фигур полностью просчитаны).

Есть возможность сменить рендер как у тех же img, или может попробовать с помощью skew и rotate реализовать если это решит проблему.

Если есть идеи, напиши
Дополнен 7 месяцев назад
Написал с помощью SVG, проблему это не решило<svg width="100%" height="100" viewBox="0 0 100 100" xmlns=" http://www.w3.org/2000/svg " style="">
<polygon points="50,0 50, 50 7.5,75 7.5,30" fill="#fff000"></polygon>
<polygon points="50,0 50,50 92.5,75 92.5,30" fill="#fff000"></polygon>
<polygon points="7.5,75 50,50 92.5,75 50,100" fill="#fff000"></polygon>
</svg>
Голосование за лучший ответ
Руслан Волков Знаток (479) 7 месяцев назад
Проблема с отображением фигуры, созданной с помощью CSS, может быть связана с неправильным расчетом координат при использовании свойства clip-path. В таких случаях бывает полезно пересмотреть логику создания фигуры или попробовать другие методы.

В вашем случае, вместо использования свойства clip-path, можно попробовать создать фигуру с помощью более надежного метода, например, с помощью SVG или использования поворотов и перспективы CSS.

Вот пример использования CSS трансформаций (rotate и skew) для создания фигуры без проблем с рендерингом:

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Фигура без ошибок рендера</title>
<style>
.shape {
position: relative;
width: 100px;
height: 100px;
overflow: hidden;
}
.triangle {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #fff000;
clip-path: polygon(0 35%, 100% 0, 100% 65%, 0 100%);
}
.diamond {
position: absolute;
top: 50%;
left: 50%;
width: 100px;
height: 100px;
margin-top: -50px;
margin-left: -50px;
background: #fff000;
transform: rotate(45deg) skewY(45deg);
}
</style>
</head>
<body>
<div class="shape">
<div class="triangle"></div>
<div class="diamond"></div>
</div>
</body>
</html>
В этом примере используется CSS для создания треугольника и ромба без использования clip-path. При необходимости можно настроить размеры и позицию элементов для достижения желаемого вида фигуры.
Давид МейстерМастер (2089) 7 месяцев назад
Очень похоже
Похожие вопросы