我有一个模板,可以设置全局img标签属性:
#content img {
background: none repeat scroll 0 0 #FFFFFF;
border: 1px solid #CFCFCF;
margin-bottom: 2px;
padding: 2px;
}
我的页面上有一个列表,其中一个项目需要有一个小的透明图像。上面的样式使图像得到我不想要的背景和边框。列表html是:
<div id="land_items">
<ul>
<li class="trace_item">
<a href="/imglink"><img src="img/popup.png"></a>
</li>
</ul>
</div>
我试图用下面的代码覆盖img标签,但是Firebug继续用“删除线”显示这些规则,表明上面的全局img样式优先。我听说这可能是因为id css样式覆盖了类样式。我该如何做到这一点?
li.trace_item img {
background-color: transparent;
border: none;
padding: 0;
margin: 0;
}
答案 0 :(得分:16)
这是因为CSS在应用样式(它级联)时使用specificity
如果您将其更改为
,它应该适用于您#content li.trace_item img {
background-color: transparent;
border: none;
padding: 0;
margin: 0;
}
这是星球大战术语中解释的特异性:http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html
答案 1 :(得分:1)
只需将#content添加到覆盖的css选择器:
#content li.trace_item img {
background-color: transparent;
border: none;
padding: 0;
margin: 0;
}
答案 2 :(得分:0)
#content li.trace_item img {
background-color: transparent;
border: none;
padding: 0;
margin: 0;
}
答案 3 :(得分:0)
你有不同的选择 您将id内容转换为类内容或将trace_item类转换为id或 你将!important添加到你的trace_item类或者将#content添加到.trace_item也可以