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

CSSz-index

Gist

 状態:未解決  閲覧数:4,246  投稿日: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>


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

 閲覧数:476 投稿日: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 要素の階層構造がおかしい、ということ

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

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

relative


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

仮結論

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

予想


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


CSS


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


今後について

 閲覧数:426 投稿日: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 「z-index」が効かない時は「-1」を指定してみる 49
2 resizeが効かない場合は、min-heightを設定してみる 45
3 「パッケージ化されてない拡張機能を読み込む」でインストールした拡張は、chromeを「更新」すると正常動作しなくなることがあります。 42
4 「Fireworks」後継として、「Gravit Designer」を使用していくことを決定  40
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 が正常動作しない理由 33
15 「Midjourney」を使用してみた感想。2022 年 8 月 2 時点では、画像生成能力自体は素晴らしいと思いますが、UIが致命的に分かりづらかったです。 33
16 「Google Chrome」タブをグループへ追加すると、そのタイミングでグループは自動的に開かれてしまいます。開かないようにすることはできません 33
17 StableDiffusionのweb版「DreamStudio」を使用してみた感想。それなりに楽しめましたが、課金してまで使用してみたいとは思いませんでした。 33
18 Chromeブラウザは、ユーザーという単位で情報管理している(Cookieを使用する場面もあるが、必ずしもCookieだけに頼っているわけではない) 32
19 「レイアウト崩れ」がどうしても解決しない → Chrome「デベロッパーツール」で怪しいと思った要素を、正常表示されるまで削除し続けていく 32
20 display:flexのorderプロパティを使用すると、「:first-child」「:last-child」「隣接兄弟結合子」の効果は上書きされる 32
2022/10/03 23:55 更新
週間人気ページランキング / 9-26 → 10-2
順位 ページタイトル抜粋 アクセス数
1 RGB ⇔ Lab | 色変換(色) 71
2 16進数カラーコード / 2進数 37
3 血の色 / #b30000 / #360800 / #ff0000 | カラーコード(色) 26
4 「Bootstrapデザイン」✕「グラフ」 | 2系(Bootstrap) 19
5 「bgcolor」「background-color」「background」の違い | CSS 16
6 「マウスオーバー」「ロールオーバー」「ホバー」の違い | CSS 15
7 「Font Awesome 4」と「Font Awesome 5」の違い(Font Awesome バージョン4からのアップグレード) | Font Awesome(フォント) 14
7 「:hover」「z-index」を組み合わせて使用すると、正常動作しないことがある | z-index(CSS) 14
7 Design 0 14
8 RGBの種類 / ビットカラー | RGB(色) 12
9 「:after擬似要素」は、Chromeの「要素を検証」で確認できない | 擬似(CSS) 11
10 「属性」「プロパティ」「アトリビュート」の違い | CSS 9
10 Chrome でキャッシュを効かさない | Google Chrome(ブラウザ) 9
11 rem | 単位(CSS) 8
11 Chromeデベロッパーツールで、スマホソースコードを確認したいが、USBデバッグ機能をどうしても有効にすることが出来ない | モバイルデザイン(デザイン) 8
11 「コズミックブルー」は、くすんだ青系全般の色を指す用語だと思います。 | カラーコード(色) 8
11 金融機関ブランドカラー / コーポレートカラー | カラーコード(色) 8
11 黒体 / 色温度 / D65(6500K)/ D50(5000K)/ K | 色 8
12 カラーコード / 色コード | カラーコード(色) 7
13 パッケージ化されてない拡張機能 | Chrome 拡張機能 6
2022/10/3 1:01 更新