質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

12582閲覧

z-index:疑似要素の要素の重なりについて教えてください。

退会済みユーザー

退会済みユーザー

総合スコア0

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/08/07 08:07

編集2019/08/07 09:33

●実現したいこと
添付画像のように<h1>をh1の疑似要素より前面に配置したい

●わからないこと
疑似要素にz-index:-1;をつけることで最背面に配置されると思っていましたが、h1にもz-indexを記述しなければ疑似要素が表示されません。理由がわからないので教えていただきたいです。

html

1<div class="container"> 2 <h1>見出し</h1> 3</div> 4

css

1.container { 2width: 475px; 3margin: 139px 137px 212px 138px; 4background-color: #FFFFFF; 5} 6 7h1 { 8 width: 215px; 9 height: 36px; 10 padding:0 9px 5px 10px; 11 position: relative; 12 z-index: 1; 13} 14 15.h1:after { 16 content: ''; 17 position: absolute; 18 top: 16px; 19 left: 0px; 20 display: block; 21 22 width:100%; 23 height:20px; 24 background: repeating-linear-gradient(-45deg, #7385E9 0,#7385E9 10px, rgb(194, 202, 243) 10px,rgb(194, 202, 243) 20px); 25 z-index: -1; 26}

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshinavi

2019/08/07 10:33

キャッシュクリアしていますか?
退会済みユーザー

退会済みユーザー

2019/08/07 16:42

キャッシュクリアしてみましたが同じ結果でした…
guest

回答3

0

ベストアンサー

質問者さんと最初は違い、他の回答者さんと同じような表示でしたが、先程、再度確認したら、状況が再現されました。

z-indexの重なり順はいくつかの条件があります。

MDN:重ね合わせコンテキスト

今回は、親の「.container」が、ちょっとした状況等により、絡んでます。
どちらか一方に設定するよりは、対象要素にはz-indexを設定したほうが無難です。

投稿2019/08/07 23:44

yoshinavi

総合スコア3523

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/08 02:47

何度も確認していただきありがとうございました。理解できました。
guest

0

css

1.h1:after { 2 content: ''; 3 position: absolute; 4 top: 16px; 5 left: 0px; 6 display: block; 7 width:100%; 8 height:20px; 9 background: repeating-linear-gradient(-45deg, #7385E9 0,#7385E9 10px, rgb(194, 202, 243) 10px,rgb(194, 202, 243) 20px); 10 z-index: -1; 11}

上記の最初の(.)を消したら疑似要素側だけで良いかと思います。
もしならなければ他のどこかが影響してるのかと思います。

投稿2019/08/07 08:34

編集2019/08/07 08:36
mutsuki22

総合スコア445

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/07 08:37

ドット(.)はミスタイプでした。ややこしくすいません。ほかの影響も考えてみます。ありがとうございました。
mutsuki22

2019/08/07 08:41

それは(.)は元々付いてなくて上記のコードでは上手くいかないって事ですか?
退会済みユーザー

退会済みユーザー

2019/08/07 09:03

はい。ドットはもともとついていません。ドットなしで確認しましたが表示されません。
guest

0

.h1の意味がわかりませんでしたがz-index: 1;を指定しなくてもできました。
CodePen

追記

やはり問題があるようには思えません。
あ
強いて言うなら.h1とh1のタイプミス?

投稿2019/08/07 08:15

編集2019/08/07 10:04
kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/07 08:30

ご回答ありがとうございます。私のブラウザではなぜか文字のみ表示されストライプは隠れてしまいます、。通常であればz-indexは疑似要素に対する記述のみで再現できるということでしょうか。
kyoya0819

2019/08/07 08:34

.h1ではなくh1では?
退会済みユーザー

退会済みユーザー

2019/08/07 08:49

ドット(.)はミスタイプでした。ややこしくすいません。 今回の質問には記載していませんでしたが、今回の見出し、container要素の中に記述しているもので、おそらく .container { width: 475px; margin: 139px 137px 212px 138px; background-color: #FFFFFF; } が関係していると考えました。この場合、重なり順としては上から1)h1要素の「見出し」 2)container要素 3)疑似要素のストライプの順になっているためストライプが隠れてしまったのでしょうか。containerはpositionを指定していないため重なり順としてはz-indexを指定した要素と比べどのように考えるべきか教えてください。
yoshinavi

2019/08/07 08:53 編集

横からスミマセン。 >私のブラウザではなぜか文字のみ表示されストライプは隠れてしまいます、。 → ブラウザ名とバージョンは何ですか? また、提示のコードでは、ストライプ部分は「.h」なので、HTMLに無いので、表示されないのは正常です。
退会済みユーザー

退会済みユーザー

2019/08/07 08:58

ブラウザはGoogle chrome、バージョンは 75.0.3770.142です。
kyoya0819

2019/08/07 09:27

Keito37さん Container要素とは?クラス名でないのですか? HTMLですが親要素まで全て記載(修正)してください。
退会済みユーザー

退会済みユーザー

2019/08/07 09:34

何度も申し訳ありません。 質問のhtml,cssを修正しました。宜しくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問