各メニュー項目を赤い色で強調表示し、その上にカーソルを置いてみたかったのです。だから私の直感では、私は.menu ul li: hover{...}
でした。ulとliの場合、ホバーの動作が直感的ではないのはなぜですか?
疑い1:しかし、これはli
テキストの背景は色ではなくli
のパディング部分を変更しました。 padding
が色を変更しないのはなぜですかpadding
もli
要素の一部ですか?
・ダウト2:次のコードのように私は.menu ul :hover
を行うことによって予想される動作を達成しました。しかし、これは私の直感に反するものです。 ul
全体が背景に色を変えて、メニュー項目全体が強調表示されるようにする必要はありませんか?
コード:あなたはul
と:hover
の間にスペースがあるので、それはすべての子供たちにbackground:red
を追加しているため
body {
background-color: #EEE;
margin: 0;
padding: 0;
}
.header {
height: 60px;
background-color: #FFF;
box-shadow: 0 0 3px rgba(0,0,0,.2);
}
.logo {
position: relative;
display: inline-block;
height: 40px ;
width: 100px ;
top:10px;
left: 10px;
}
.menu ul {
float: right;
padding: 0;
list-style-type: none;
margin-right:40px;
margin-top: auto;
margin-bottom:auto;
}
.menu ul li {
position: relative;
top: -15px;
display: inline;
padding:10px 20px;
}
.menu ul :hover {
background-color: red;
}
.menu ul li a {
text-decoration: none;
}
<div class="header">
<div class="logo">
<img src="logo_new1.png" class="img">
</div>
<div class="menu">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Activities</a></li>
<li><a href="#">About us</a></li>
<li><a href="#">Contacts</a></li>
</ul>
</div>
</div>
は 'ul' /' li'と 'の間にスペースを使用しないでください! –