所以我有一些CSS生成这个。
HTML代码如下。
<div class="menu">
<ul>
<li><a href='index.html'>Home</a></li>
<div class="menutab"></div>
<li><a href='about_us.html'>About Us</a></li>
<div class="menutab"></div>
<li><a href='#'>Order Online</a></li>
<div class="menutab"></div>
<li><a href='gallery.html'>Gallery</a></li>
<div class="menutab"></div>
<li><a href='#'>Contact Us</a></li>
<div class="menutab"></div>
</ul>
</div>
和CSS
.menu {
width: 100%;
height: 220px;
float: left;
margin-left: -20px;
position: relative;
text-align: center;
}
.menu li{
display: block;
list-style: none;
width: 100%;
background: #EBE5D9;
height: 50px;
margin-left: -40px;
margin-top: 5px;
line-height: 50px;
}
.menu li:hover {
background: #AEC32A;
}
.menu li a{
text-decoration: none;
font-size: 20px;
color: #000000;
font-family: fantasy;
}
.menutab {
width: 30px;
position: relative;
margin-top: -3px;
margin-left: -71px;
border-right: 21px solid #EBE5D9;
border-bottom: 21px solid transparent;
}
基本上我想要的是悬停效果将整个事物变成绿色,目前.menu li:hover将块变为#AEC32A但是我也希望它将.menutab边框变成相同的颜色,无论如何这样做?最好不要使用Javascript。
先谢谢你的帮助: - )
答案 0 :(得分:5)
答案 1 :(得分:4)
这对adjacent sibling combinator没有问题。
只需将此添加到您的css:
.menu li:hover + .menutab{
border-right-color: #AEC32A;
}
这将选择第一个元素(.menutab
)的前一个元素(.menu li:hover
)。
请参阅live demo
如果您不关心旧的IE,Browser-support是100%&lt;(=)8;)