CSS

CSSのhoverで離れた兄弟要素(並列に並んだ要素)にスタイルを与える方法

いつもご利用ありがとうございます。このブログは、広告費によって運営されています。

オススメ本
Web技術を勉強するなら、かなりオススメの雑誌です。毎月新しい発見があります。ついに最終号・・・、みなさん買いましょう!!
読んで損することはない名著。命名で悩むことが多い人はこの本がオススメです。

CSS の hover で離れた兄弟要素(並列に並んだ要素)にスタイルを与える方法についてまとめました。

今回のサンプルでは、2番目をホバーすると、3、4、5に対しても色を与えています。

ホバーした結果の画面がこちら

結果のスクリーンショット

ホバーしたときのコード

HTML

<div class="test1">test</div>
<div class="test2">test2</div>
<div class="test3">test3</div>
<div class="test4">test4</div>
<div class="test5">test5</div>

CSS

/* 本人 */
.test2:hover {
    color: blue;
    font-size: 30px;
}

/* 1個下の要素 */
.test2:hover  +  .test3  {
    color: orange;
}

/* 2個下の要素 */
.test2:hover  ~  .test4  {
    color: pink;
}

解説

同じ階層の一個したに書かれた要素(兄弟要素:1 個下の弟?)は、+で書く。

.test2:hover  +  .test3  {
    color: orange;
}

2 個以上離れた要素(兄弟要素:2 個以上下の弟?)は、~で書くみたいです。

.test2:hover  ~  .test4  {
    color: pink;
}

動かないコードたち

/* これは動かない */
/* .test2:hover 〜 .test1  {
    font-size: 20px;
    color: red;
} */
/* 2から1へ変化を与える方法がわからない・・・ */

/* これも動かない */
/* .test2:hover + .test5 {
  color: green;
} */

まとめ

以上です。

絶賛、1 個兄な要素に対して CSS の hover で変化を与える方法を募集中です。

感想・苦情は TwitterDM にご連絡ください。

それでは!