transform-styleプロパティは、
このプロパティを指定した要素の子要素が、
3D空間の中でフラットに(平らに)描画されるか、立体的に描画されるかを指定する際に使用します。
指定できる値は、flat と preserve-3d のいずれかで、初期値は flat です。
要素に transform-style:flat; を指定すると、
その子要素は、transform-style:flat; を指定した要素の2D平面でフラットに描画されます。
この場合、X軸やY軸で要素を回転させると、
transform-style:flat; を指定した要素の子要素は、
前や後ろに重なるのではなく、
transform-style:flat; を指定した要素の平面上に乗った状態で、
Z軸の正位置や負位置に現れることになります。
要素に transform-style:preserve-3d; を指定すると、
transform-style:flat; を指定した要素の子要素は、
フラット化されずに3D空間の中でのそれらの位置を維持します。
transform-style:preserve-3d; を指定する場合、指定の仕方によっては、
3D空間の中に配置された要素が、祖先要素の背後に隠れて見えなくなるかもしれません。
また、overflow:hidden; が指定されている要素に
transform-style:preserve-3d; を指定しても、子要素を3Dに保つことはできないかもしれません。
この場合には、transform-style:flat; を指定したのと同じ表示となります。
p.sample1, p.sample2 {background-color:limegreen;}
p.sample1 {transform-style:flat;}
p.sample2 {transform-style:preserve-3d;}
p.sample1 img, p.sample2 img {transform: rotateZ(30deg);}
<html>
<head>
<link rel=”stylesheet” href=”sample.css” type=”text/css”>
</head>
<body>
<p class=”sample1″>
p要素にtransform-style:flat;を指定<br>
<img src=”https://www.htmq.com/wp-content/uploads/2024/07/kaeru.gif”>
</p>
<p class=”sample2″>
p要素にtransform-style:preserve-3d;を指定<br>
<img src=”https://www.htmq.com/wp-content/uploads/2024/07/kaeru.gif”>
</p>
</body>
</html>
p要素にtransform-style:flat;を指定
p要素にtransform-style:preserve-3d;を指定
p.prefix_sample1, p.prefix_sample2 {background-color:limegreen;}
p.prefix_sample1 {
-moz-transform-style:flat;
-webkit-transform-style:flat;
-o-transform-style:flat;
-ms-transform-style:flat;
}
p.prefix_sample2 {
-moz-transform-style:preserve-3d;
-webkit-transform-style:preserve-3d;
-o-transform-style:preserve-3d;
-ms-transform-style:preserve-3d;
}
p.prefix_sample1 img, p.prefix_sample2 img {
-moz-transform: rotateZ(30deg);
-webkit-transform: rotateZ(30deg);
-o-transform: rotateZ(30deg);
-ms-transform: rotateZ(30deg);
}
<html>
<head>
<link rel=”stylesheet” href=”sample.css”
type=”text/css”>
</head>
<body>
<p class=”prefix_sample1″>
p要素にtransform-style:flat;を指定<br>
<img src=”https://www.htmq.com/wp-content/uploads/2024/07/kaeru.gif”>
</p>
<p class=”prefix_sample2″>
p要素にtransform-style:preserve-3d;を指定<br>
<img src=”https://www.htmq.com/wp-content/uploads/2024/07/kaeru.gif”>
</p>
</body>
</html>
p要素にtransform-style:flat;を指定
p要素にtransform-style:preserve-3d;を指定
※メモ:上記のサンプルは、Google Chromeでは違いが確認できますが、
解説と実際の動作が合っているのかどうか判断しかねます。
きちんと理解できていませんので、あくまで参考程度でお願いします。