如何在css中覆盖img标记的全局样式

时间:2011-05-15 11:46:30

标签: css override

我有一个模板,可以设置全局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;
}

4 个答案:

答案 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;
}

在此处查看演示:http://jsfiddle.net/alp82/A5rHY/6/

答案 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也可以