From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/ja/web/css/transform-style/index.html | 176 ++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 files/ja/web/css/transform-style/index.html (limited to 'files/ja/web/css/transform-style') diff --git a/files/ja/web/css/transform-style/index.html b/files/ja/web/css/transform-style/index.html new file mode 100644 index 0000000000..07e0eb8a4f --- /dev/null +++ b/files/ja/web/css/transform-style/index.html @@ -0,0 +1,176 @@ +--- +title: transform-style +slug: Web/CSS/transform-style +tags: + - CSS + - CSS Property + - CSS Transforms + - Experimental + - Reference + - 'recipe:css-property' +translation_of: Web/CSS/transform-style +--- +
{{CSSRef}}
+ +

transform-styleCSS のプロパティで、要素の子要素を 3D 空間に配置するのか、平面化して要素の平面に配置するのかを設定します。

+ +
{{EmbedInteractiveExample("pages/css/transform-style.html")}}
+ + + +

平面化した場合、子要素は自身の 3D 空間に存在しなくなります。

+ +

このプロパティは継承されないため、葉要素以外のすべての子孫要素で設定する必要があります。

+ +

構文

+ +
/* キーワード値 */
+transform-style: flat;
+transform-style: preserve-3d;
+
+/* グローバル値 */
+transform-style: inherit;
+transform-style: initial;
+transform-style: unset;
+
+ +

+ +
+
flat
+
要素の子要素を要素自身の平面上に配置することを示します。
+
preserve-3d
+
要素の子要素を 3D 空間に配置することを示します。
+
+ +

公式定義

+ +

{{CSSInfo}}

+ +

形式文法

+ +
{{csssyntax}}
+ +

+ +

変換スタイルのデモ

+ +

この例では、変換を使用して 3D の立方体を作成しています。立方体の面の親コンテナーには、既定で transform-style: preserve-3d が設定されているため、3D 空間で変換され、意図したとおりに表示されます。

+ +

また、これと transform-style: flat の間で切り替えられるチェックボックスも用意されています。この別な状態では、立方体の面はすべて親の平面上に平坦化され、使用しているブラウザーによっては全く表示されない場合があります。

+ +

HTML

+ +
<section id="example-element">
+  <div class="face front">1</div>
+  <div class="face back">2</div>
+  <div class="face right">3</div>
+  <div class="face left">4</div>
+  <div class="face top">5</div>
+  <div class="face bottom">6</div>
+</section>
+
+<div class="checkbox">
+  <label for="preserve"><code>preserve-3d</code></label>
+  <input type="checkbox" id="preserve" checked>
+</div>
+ +

CSS

+ +
#example-element {
+  margin: 50px;
+  width: 100px;
+  height: 100px;
+  transform-style: preserve-3d;
+  transform: rotate3d(1, 1, 1, 30deg);
+}
+
+.face {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  width: 100%;
+  height: 100%;
+  position: absolute;
+  backface-visibility: inherit;
+  font-size: 60px;
+  color: #fff;
+}
+
+.front {
+    background: rgba(90,90,90,.7);
+    transform: translateZ(50px);
+}
+
+.back {
+    background: rgba(0,210,0,.7);
+    transform: rotateY(180deg) translateZ(50px);
+}
+
+.right {
+  background: rgba(210,0,0,.7);
+  transform: rotateY(90deg) translateZ(50px);
+}
+
+.left {
+  background: rgba(0,0,210,.7);
+  transform: rotateY(-90deg) translateZ(50px);
+}
+
+.top {
+  background: rgba(210,210,0,.7);
+  transform: rotateX(90deg) translateZ(50px);
+}
+
+.bottom {
+  background: rgba(210,0,210,.7);
+  transform: rotateX(-90deg) translateZ(50px);
+}
+ +

JavaScript

+ +
const cube = document.getElementById('example-element');
+const checkbox = document.getElementById('preserve');
+
+checkbox.addEventListener('change', () => {
+  if(checkbox.checked) {
+    cube.style.transformStyle = 'preserve-3d';
+  } else {
+    cube.style.transformStyle = 'flat';
+  }
+})
+ +

結果

+ +

{{EmbedLiveSample('Transform_style_demonstration', '100%', 260)}}

+ +

仕様書

+ + + + + + + + + + + + + + + + +
仕様書状態備考
{{SpecName('CSS Transforms 2', '#transform-style-property', 'transform-style')}}{{Spec2('CSS Transforms 2')}}初回定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("css.properties.transform-style")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf