36
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CSS : hover時に他の要素の操作をしたい時の注意点

Last updated at Posted at 2020-04-24

cssのhover操作で、hoverする要素とは別の要素のスタイルを変更したいと思ったときに、色々調べたので、メモとして残します。

hoverで別の要素のスタイリングをする

hoverして、別の要素を動かしたい時

要素:hover +別要素

と書きます。 '+' は、他の要素を指定するときに書きます。
hoverする要素の子要素の時は書かなくても良いです。

 

これから書く説明は、以下のコードを参照してください。
cssに番号をコメントでつけています。

See the Pen hover1 by rea-jin (@rea-jin) on CodePen.

説明: ()内は、hover要素->スタイリングしたい要素 となっています。

以下、場合分けをして、ある要素をhoverしたときの、ある要素のスタイルを変えていきます。

1.通常のhover 親要素 (oya1->oya1)

oya1をhoverして、oya1の色を変えている。

 

2.通常のhover 子要素 (ko1->ko1)

oya1の中にある子要素ko1をhoverして、それ自体を操作したい。

これは可能だが、oya1まで変化している。

子要素をhoverした時、親要素もhover対象となる。

3.子要素の同階層への操作 (ko1->ko1-2)

ko1をhoverして、ko1-2を操作したいが、できない。

これは同階層にある子要素。

コードや2の結果からわかるように、

親要素の中に入っており、親要素をhoverしているので、子要素から子要素へはhover操作できない。

 

4.親要素をhoverして子要素を操作 (oya2->ko2)

oya2をhoverしたとき、ko2の色を変えている。

これは可能である。

さらに、ko2をhoverするということは、oya2もhover対象なので、これもko2の色が変わる。

 

次は、以下のコードを参照してください。

See the Pen hover2 by rea-jin (@rea-jin) on CodePen.

 

5. 親要素をhoverして同階層の親要素を操作 (oya3->oya4)

oya3をhoverして、oya4の色を変更。

これも可能である。2や3のように、親要素に囲われておらず、自身だけがhover対象となっている。

 

6. 親要素をhoverして、他の親の子要素を操作 (oya3->ko4)

もう気づいたかもしれないが、oya3をhoverした時に、ko4も色が変わっている。

これは、要素の指定の仕方が重要で、'+.ko4'だけでは変化しない。

'+.oya4 .ko4' というように、どの親か指定する。半角スペースも入れる。

わかりづらければ、5の操作をコメントアウトして見てください。

 

7. 子要素をhoverして、他の親や他の子要素を操作 (ko4->oya5 or ko5)

これはどちらもできない。

子要素をhoverすると親要素もhover対象といったが、きちんと親要素を指定して、hoverしないと他は操作できない。

 

8. 親要素をhoverして、他の親を操作 (下から上) (oya5->oya4)

できない。  

これが、なぜこれができないのか結構調べました。

しかし、全然見つからず、自分で気づきました。

HTMLはドキュメントツリー構造で、上から下へ処理されるからなのでは? と。

これは、常識ですが、初学者は忘れがちなことかもしれません。

cssみたいに、順番気にせず書いてたら、できそうな気がするものです

処理された後に、操作しようといっても、cssじゃできないと言うことですかね。

参考

https://techacademy.jp/magazine/19418

初学者による、初学者向けの記事です。間違いがあれば、ご指摘いただけると幸いです。
コメントお待ちしております。

36
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?