3D преобразований не поддерживаются SVG элементов. Есть несколько обходных путей, хотя:
Если SVG не содержит элементы, которые не должны быть трансформированы, вы можете использовать CSS 3D-преобразования на самом SVG элемент:
svg {
width: 70%;
margin: 0 auto;
display: block;
-webkit-transform: perspective(300px) rotateX(30deg);
transform: perspective(300px) rotateX(30deg);
}
<svg viewbox="0 0 100 20">
<text x="0" y="20">TEXTEXTEX</text>
</svg>
В случае полигонов вы делаете двумерный многоугольник похожим на трехмерный многоугольник. В следующем примере, красный прямоугольник 3D поворачивается (rotateX(40deg)
) и черный прямоугольник представляет собой многоугольник 2D SVG сделано, чтобы посмотреть, как повернуты прямоугольник 3D:
div{
display:inline-block;
width:200px; height:100px;
background:red;
transform:perspective(500px) rotateX(40deg);
}
svg{
display:inline-block;
width:220px; height:auto;
}
div, svg{
display:inline-block;
margin:0 10px;
}
<div></div>
<svg viewbox="0 0.5 10 4">
<polygon points="9.9 4.1 0.1 4.1 0.7 0.6 9.3 0.6" fill=""/>
</svg>
«3D преобразования не являются поддерживаемый элементами SVG "- чрезвычайно полезное резюме, которое я бы хотел найти час назад. – spro