トップページ  > CSS3  > transform-style

★CSS3リファレンス

transform-style …… 子要素がフラットに描画されるか立体的に描画されるかを指定する
※少なくともGoogle Chrome16では動くようです。いずれきちんとブラウザ調査します。
広告

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; を指定したのと同じ表示となります。

■値

flat(初期値)
要素の2D平面上に子要素をフラットに(平らに)描画
preserve-3d
3D空間の中で子要素がそれぞれの位置を維持するように描画

■初期値・適用対象・値の継承

初期値
flat
適用対象
ブロックレベル要素、インライン要素
値の継承
しない

■使用例

CSSソースは外部ファイル(sample.css)に記述

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ソース

<html>
<head>
<link rel="stylesheet" href="sample.css" type="text/css">
</head>
<body>
<p class="sample1">
p要素にtransform-style:flat;を指定<br>
<img src="../images/kaeru.gif">
</p>
<p class="sample2">
p要素にtransform-style:preserve-3d;を指定<br>
<img src="../images/kaeru.gif">
</p>
</body>
</html>
↓↓↓

ブラウザ上の表示

p要素にtransform-style:flat;を指定

p要素にtransform-style:preserve-3d;を指定

■ベンダープレフィックスを付けた場合の使用例

CSSソースは外部ファイル(sample.css)に記述

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ソース

<html>
<head>
<link rel="stylesheet" href="sample.css" type="text/css">
</head>
<body>
<p class="prefix_sample1">
p要素にtransform-style:flat;を指定<br>
<img src="../images/kaeru.gif">
</p>
<p class="prefix_sample2">
p要素にtransform-style:preserve-3d;を指定<br>
<img src="../images/kaeru.gif">
</p>
</body>
</html>
↓↓↓

ブラウザ上の表示

p要素にtransform-style:flat;を指定

p要素にtransform-style:preserve-3d;を指定

※メモ:上記のサンプルは、Google Chromeでは違いが確認できますが、 解説と実際の動作が合っているのかどうか判断しかねます。 きちんと理解できていませんので、あくまで参考程度でお願いします。

広告
Sponsors
広告
MuuMuu Domain!
ドメイン取るならお名前.com
現役エンジニアのオンライン家庭教師【CodeCamp】
サイトに広告を掲載してお小遣いが稼げる!【A8.net】
Node.jsコース
はじめてのプログラミングコース
▲ページ先頭へ
HTMLクイックリファレンスについて
© HTMQ