E:hover + E, E:hover ~ E
E:hover + E
では、当たり前のことなんだけど 隣接セレクターは直後の要素にしかスタイルが適用されない ので .box2
にだけスタイルが適用されて、 .box3
の背景色は変わらない。E:hover ~ E
では .box
以下の .box2
と .box3
両方にスタイルが適用される。
/* E:hover + E */ .box:hover + .box2, .box:hover + .box3 { background-color: blue; } /* E:hover ~ E */ .box:hover ~ .box2, .box:hover ~ .box3 { background-color: blue; }
隣接セレクターが直後の要素だけに適用されることとかすぐ忘れるし、普段使わないセレクターを使うとちょっとしたことでつまづく。