【CSS】クラスでのスタイルの指定
全てサイズが同じメニューボタンを作成しました。
マウスオーバーでのオンオフをCSSで切り替えたく、画像もそれに合わせて作っています。(縦80×横100を2枚貼付けた、160×100のもの)
マウスオーバー時の動作は、
menu_a:hover {background-position: left bottom;}
という感じで書いており、きちんと動いたのですが、複数あるメニューボタン全てで同じ動きをするので、どうせならクラスを指定してまとめられないかと思い、各ボタンにclass="hover"のような指定をして、
.hover:hover {background-position: left bottom;}
のように書いたのですが、動かなくなりました。
同じように幅や高さも全て同じサイズになるので、
.hover {weight: 80px; height:100px;}
のように書いたのですが、こちらもスタイルが読み込まれませんでした…。
原因と対応方法がわかる方がいらっしゃいましたら、アドバイスをお願いします。
みんなの回答 5 件
.hoverクラスはHTMLにはJSでつけてるの?
ulにIDふって(#hoge)ではあかんの?
ul#hoge li:hover{ }
weightって何?これは投稿する際に書き間違えたの?
width,heightじゃないの?
idでの指定にbackground-positionを指定しなければ、普通に動くと思うけど。
#menu_a{
background-image: url(hoge.jpg);
}
.hover:hover{
background-position: left bottom;
}
もしくは、ulにclassをつければ解決かな
.hover>li:hover{
background-position: left bottom;
}
どなたかわかる方がいらっしゃれば、回答いただきたいです。
----- HTML -----
<ul>
<li id="menu_a" class="hover">menu_A</li>
<li id="menu_b" class="hover">menu_B</li>
</ul>
----- CSS -----
#menu_a {
background: url(menu_a.png) no-repeat top left;
}
#menu_b {
background: url(menu_b.png) no-repeat top left;
}
.hover { width: 100px; height: 80px;}
.hover:hover {
background-position: left bottom;
}
以上のような記述をしていた場合、menu_A、menu_Bに対して、
background-image: url(各ファイル名.png);
background-repeat: no-repeat;
background-position: top left;
width: 100px;
height: 80px;
は適用されているのですが、最後の
.hover:hover {
background-position: left bottom;
}
の部分が反映されません。
これまでのご指摘で、IDを指定しているものに対してクラスを指定しても適用されない、と言われましたが、widthとheightは適用されており、適用されていないのは疑似クラスのみなのですが、IDを指定している場合はクラスは適用されるが疑似クラスは適用されない、という考えで正しいのでしょうか?
また、似たような処理は他のWebサイトでもされているかと思うのですが、疑似クラスが適用されない場合、皆様は全IDを指定して疑似クラスを記述されていらっしゃるのでしょうか?
ご回答いただけますと幸いです。
関連するトピックス