CSSでz-indexにマイナスを設定すると消える場合の対処法!
CSSでz-indexにマイナスを設定すると消える場合の対処法について解説します。z-indexを用いる場合はとある条件が必要となってきます。その条件とは何か、またCSSでz-indexにマイナスを設定すると消える場合どう対処すればいいのかについて解説します。
CSSでz-indexにマイナスを設定すると消える
CSSでz-indexプロパティにマイナスを設定すると消えるということを経験したことがあるのではないでしょうか。
以下の項目でその対処法を解説します。
CSSでz-indexにマイナスを設定すると消える場合の対処法
それではCSSでz-index
プロパティにマイナスを設定すると消える場合の対処法について解説します。
まずCSSでz-index
プロパティに負の値を設定すると消える場合を見てみましょう。ここでは解説のため意図的にz-index: -1;
を設定してリンクを消しています。
では実際にサンプルコードを用いて挙動を確認してみましょう。
このように本来「リンクはこちらです」というテキストのa
要素が表示されるはずですが、リンクとなるa
要素のz-index
プロパティに負の値が設定されているがために、消えていることが分かります。
CSSでz-indexにマイナスを設定すると消えた原因
原因としては、a
要素にposition: absolute;
とposition
を設定しているがために、他のz-index
がより大きい.bg
要素の背後に回ってしまったたmです。
対処法
今回の対処法としては、a
要素のposition: absolute;
を無くすか、.bg
というクラスが設定されている要素に対してposition
プロパティの値でstatic
以外の値を設定して、z-index
の値を-1
よりも小さく設定するということが挙げられます。
では実際にサンプルコードを用いて挙動を確認してみましょう。
このように.bg
にもposition: absolute;
を設定して、z-index: -2;
とすることで、a
要素が現れたことが分かります。
子要素にCSSでz-indexにマイナスを設定した場合
子要素にz-index
にマイナスを設定した場合、z-index
の値は親要素のz-indexの値に依存します。
実際に子要素にz-index
プロパティにマイナスの値を設定して消えてしまう場合を、サンプルコードを用いて確認してみましょう。
このようにリンクとなるa
要素のz-index
の値が一番大きいはずなのに消えてしまっています。
リンクが消えてしまった原因
リンクが消えてしまった原因としては、a
要素は.bg1
の配下にあるため、a
要素に設定しているz-index: -1;
は親要素の.bg1
に対してのみ適用されます。
ですので、.bg1
と.bg2
のz-index
プロパティの値は同じであるため、HTMLで後に記述された.bg2
が.bg1
の上に表示され、.bg1
の子要素であるa
要素も.bg2
の背後に隠れてしまったということです。
対処法
.bg2
のz-index
プロパティの値を.bg1
のz-index
プロパティの値よりも小さく設定することで、リンクが画面上に表示されるようになります。
では実際にサンプルコードを用いて挙動を確認してみましょう。
このように.bg2
にz-index: -3;
と一番小さな値を設定したので、リンクが画面上に表示されました。
まとめ
いかがでしたでしょうか?
WEBサイトを制作していて、CSSでz-index
プロパティにマイナスを設定すると消えてしまった場合は、ぜひここで紹介した例をもとに解決してください。
またz-index
プロパティを用いる際はいくつか注意点があります。
以下の記事で解説しているのでぜひ参照してください。