回答編集履歴

2

コード追記

2022/12/05 05:18

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -25,5 +25,17 @@
25
25
  }
26
26
  }
27
27
  ```
28
- [CodePenサンプル](https://codepen.io/hatena19/pen/yLExPGd)
28
+ [CodePenサンプル](https://codepen.io/hatena19/pen/yLExPGd
29
29
 
30
+ 追記
31
+ ---
32
+ **質問者さんの現状のコード↓**
33
+ https://codepen.io/yon-s/pen/KKebPgp
34
+
35
+ 上記は、opacity: 0; で .a要素を透明にしているので、`transform-style: preserve-3d;`が無効になるので、上の回答の方法ではうまくきません。
36
+ また、z-index で疑似要素を親要素の背面に移動させることもできません。
37
+
38
+ そこで、親要素の背景色を ::before疑似要素に設定するようにして、z-index で前後位置を指定すればうまくいきました。
39
+ **改良サンプル↓**
40
+ https://codepen.io/hatena19/pen/KKebKNv
41
+

1

説明修正

2022/11/30 13:15

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -1,6 +1,3 @@
1
- `z-index`は同じ同じブロック内での要素の前後位置を設定するものです。
2
- `.a::after`疑似要素は `.a`の子要素なので、`z-index`で `.a` の背面に移動させることはできません。
3
-
4
1
  `transform-style: preserve-3d;`で子要素を 3D 空間に配置することによって、`translateZ()` で背面に移動させることが可能になります。
5
2
 
6
3
  [transform-style - CSS: カスケーディングスタイルシート | MDN](https://developer.mozilla.org/ja/docs/Web/CSS/transform-style)