Zby*_*nek 6 css css-selectors css3
我想将样式应用于列表中的悬停链接,但前提是<a>元素内部没有图像.
标记是这样的:
<div id="leftcolumn">
<ul>
<li><a href="http://google.com">google</a></li>
<li><a href="http://google.com"><img src="http://cso.cz/wpimages/cz2.gif"></a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
和我的css:
div#leftcolumn ul a:hover{
background-color: #F8F8F8;
color: Black;
border-bottom: 1px solid Black;
}
Run Code Online (Sandbox Code Playgroud)
我试过这个css,但无济于事:
div#leftcolumn ul a:hover < img{
background-color: #F8F8F8;
color: Black;
border-bottom: 1px solid Black;
}
Run Code Online (Sandbox Code Playgroud)
这是jsfiddle
您不能在CSS中基于元素的子元素来设置样式,可以做的是为<a>保存图像并防止样式设置的标签分配一个特殊的类:
<div id="leftcolumn">
<ul>
<li><a href="http://google.com">google</a></li>
<li><a href="http://google.com" class="withImage"><img src="http://cso.cz/wpimages/cz2.gif"></a></li>
</ul>
</div>
div#leftcolumn ul a:not(.withImage):hover{
background-color: #F8F8F8;
color: Black;
border-bottom: 1px solid Black;
border-top: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)
我怀疑这在纯 CSS 中是否可行。
但是,您可以将文本包装在 a 中<span>并仅在其中应用规则,即:
<div id="leftcolumn">
<ul>
<li><a href="http://google.com"><span>google</span></a></li>
<li><a href="http://google.com"><img src="http://cso.cz/wpimages/cz2.gif"></a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
div#leftcolumn ul a:hover > span {
background-color: #F8F8F8;
color: Black;
border-bottom: 1px solid Black;
}
Run Code Online (Sandbox Code Playgroud)