「:hover」「z-index」を組み合わせて使用すると、正常動作しないことがある

CSSz-index

Gist

 状態:未解決  閲覧数:5,504  投稿日:2015-01-02  更新日:2015-01-02
画像マウスオーバーした際、transformの「rotate × scale」後に「z-index」が適用されず悩む
・「並べて表示している画像」の内、最後の画像だけ、マウスオーバーした際、最前面に表示される
・それ以外は、全て他の画像の後ろで拡大されてしまう
・全然意味が分からない!
・元旦なのに!(関係ないけど…)


最終的に


HTML要素の配置順を変更したら、意図した通り動作するようになった
・どうしてこうなるか、全く理解できないけれども…

修正前
<span class="targetClass"><a href="">
<img src="" width="160" height="108">
</a></span>


修正後
<a href=""><span class="targetClas">
<img src="" width="160" height="108"></span>
</a>


調査履歴 / 試してみたけどうまくいかなかった、もしくは理解できなかった内容

 閲覧数:627 投稿日:2015-01-02 更新日:2015-01-02

z軸


z-indexで重なりが直らない場合はtransformのz軸を疑ってみる
・translate3dのz軸ってz-indexよりも強く(?)効果が発揮される
・translate3d未使用のため、遭遇ケースとは異なる(と思う)


jQuery


CSSではなくjQueryで指定
・試してみたが、遭遇したケースでは効果がなかった
$('#content img').mouseover(function () {
   $(this).css("z-index", "9")
});

$('#content img').mouseout(function () {
   $(this).css("z-index", "0")
});



再レンダリング


表示に関する何かの属性を明示的に変更しなければ、z-indexを反映させた再レンダリングを行ってくれない
・IE7に限定した話?
・今回遭遇したケースの環境は、Chromeなので関係ないかも…


drawback


css "drawback" - not webflow.
・関係ありそうな気がする
・英語を理解できない


stacking contexts


z-index is canceled by setting transform(rotate)
・transformを疑った理由は、「transform(rotate)を設定すると、z-indexがキャンセルされる」との質問をstackoverflowで見つけたため

スタック文脈
・HTML 要素を位置指定し、z-index 値を与えるとスタック文脈が作成される(完全な不透明でないとき)
・子要素の z-index 値は、その親要素に対してのみ意味を持つ
※スタック文脈は HTML 要素の階層構造の部分集合

つまり?
・z-indexが効かない、ということは、z-index 値を与えたスタック文脈の、HTML 要素の階層構造がおかしい、ということ

後で気が付いたので、未検証

 閲覧数:552 投稿日:2015-01-02 更新日:2015-01-02

relative


画像要素に「position:relative」付与
CSS3 Rotation and Scaling on same elements messes up "z-index"?

仮結論

 閲覧数:542 投稿日:2015-01-02 更新日:2015-01-02

予想


「:hover」「z-index」を組み合わせて使用するためには、隣り合う要素である必要がある
・今回の敗因は、「:hover」指定した「taegetClass」クラスと「img」要素が離れていたことが原因
・transformの「rotate × scale」とか、全く関係ない気がする
・未検証だけど…


CSS


.taegetClass:hover img{
   z-index:999;
}


今後について

 閲覧数:570 投稿日:2015-01-02 更新日:2015-01-02

ポイント


・下記3つを押えておけば、z-indexは理解できたも同然だ

A.新しいスタッキングコンテキストが何れかの要素上に形成することができる3つの方法
B.スタッキングされる要素の順序の決定
C.同じスタッキングコンテキスト内での重なり順

What No One Told You About Z-Index


いつか


私はまだ理解していない
・いつか取り組む予定
・先延ばしにする理由は、ブラウザ実装により、細かい挙動とか随時変わりそうな気がするから


感想


・z-indexは奥が深い
・そして………………























\ z-index 超分からない /


「z-index」が効かない時は「-1」を指定してみる

「z-index」が効かない時は? / 「position:relative」を指定してみる / 「z-index:-1」を指定してみる



類似度ページランキング
順位 ページタイトル抜粋
1 「:hover」「z-index」を組み合わせて使用すると、正常動作しないことがある 88
2 「z-index」が効かない時は「-1」を指定してみる 49
3 resizeが効かない場合は、min-heightを設定してみる 45
4 「パッケージ化されてない拡張機能を読み込む」でインストールした拡張は、chromeを「更新」すると正常動作しなくなることがあります。 42
5 「z-index」が効かない時は? / 「position:relative」を指定してみる / 「z-index:-1」を指定してみる 40
6 背景画像がどうしても表示されない → 「clear:both;」を挿入してみる 39
7 ページで使用されている「id名」「class名」をChromeで取得したい   39
8 textareaのスクロールバーが横へはみ出す場合は、「box-sizing:border-box;」を指定する 38
9 一つの要素に対して「id 属性値」を複数指定することは出来ない 38
10 作成した素材がどうしても見つからないときは、「png形式」を疑ってみる 36
11 「:first-child」が効かない場合は「:first-of-type」 35
12 デフォルトの「Google Chrome」ではURL欄にwwwが表示されないため、「Microsoft Edge」を使用する 34
13 textareaを手動リサイズできない時は、ブラウザを落としてみる 34
14 これまで動作していたChrome拡張機能が期待通り動作しなくなったときは、最初に、Chrome を最新の状態へ更新してみます。 34
15 が正常動作しない理由 33
16 「Midjourney」を使用してみた感想。2022 年 8 月 2 時点では、画像生成能力自体は素晴らしいと思いますが、UIが致命的に分かりづらかったです。 33
17 「Google Chrome」タブをグループへ追加すると、そのタイミングでグループは自動的に開かれてしまいます。開かないようにすることはできません 33
18 StableDiffusionのweb版「DreamStudio」を使用してみた感想。それなりに楽しめましたが、課金してまで使用してみたいとは思いませんでした。 33
19 Chromeブラウザは、ユーザーという単位で情報管理している(Cookieを使用する場面もあるが、必ずしもCookieだけに頼っているわけではない) 32
20 「レイアウト崩れ」がどうしても解決しない → Chrome「デベロッパーツール」で怪しいと思った要素を、正常表示されるまで削除し続けていく 32
2024/5/08 12:54 更新
週間人気ページランキング / 5-1 → 5-7
順位 ページタイトル抜粋 アクセス数
1 「パッケージ化されてない拡張機能を読み込む」でインストールした拡張は、chromeを「更新」すると正常動作しなくなることがあります。 | Chrome 拡張機能 21
2 Windows10で「Google Chrome」が常に最前面に表示される。「アクティブウィンドウ」が最前面で表示されない → 解決方法存在しない | Google Chrome(ブラウザ) 16
3 「Chrome拡張機能」開発中に遭遇したエラー | Chrome 拡張機能 14
4 16進数カラーコード / 2進数 12
4 血の色 / #b30000 / #360800 / #ff0000 | カラーコード(色) 12
5 鉄道会社毎のカラーコード | カラーコード(色) 10
6 Design 0 9
7 「東京都」のカラーコード取得は難しい | カラーコード(色) 5
7 「:after擬似要素」は、Chromeの「要素を検証」で確認できない | 擬似(CSS) 5
7 Chrome でキャッシュを効かさない | Google Chrome(ブラウザ) 5
8 RGB ⇔ Lab | 色変換(色) 4
8 「マウスオーバー」「ロールオーバー」「ホバー」の違い | CSS 4
9 「z-index」効果を打ち消すスタイルシートは、「z-index:auto;」 3
9 max-width: 100%の効果を打ち消すには、max-width: none; | CSS 3
10 過去のhtml | HTML 2
10 3 行で結論 / 経緯 / 都のシンボルマーク 2
10 「bgcolor」「background-color」「background」の違い | CSS 2
10 Chromeデベロッパーツールで、スマホソースコードを確認したいが、USBデバッグ機能をどうしても有効にすることが出来ない | モバイルデザイン(デザイン) 2
10 RGBの種類 / ビットカラー | RGB(色) 2
10 box-sizingは危険なCSS / レイアウトや位置がどうしても意図した通り設定できない場合は、box-sizingを疑う | CSS 2
2024/5/8 1:01 更新