div#a { background-image: none; }
试一试:
div#a { background-image:none }
这样不行吗?
.clear-background{ background-image: none; }
可能在旧浏览器上有问题…
div#a { background-image: none !important; }
虽然“!”重要”可能没有必要,因为“div#a”比“div”具有更高的特异性。
如果你的div规则只有div {...},那么#a {...}就足够了。如果它更复杂,你需要一个“更特定”的选择器,如CSS专用性规范定义的那样。(#a比div更具体,只是算法中的一个方面。)
div {...}
#a {...}
div#a { background-image: url('../images/spacer.png'); background-image: none !important; }
除了删除背景图像的规则之外,我还使用了一个透明的间隔图像,因为IE6似乎忽略了background-image: none,即使它标记为!important。
background-image: none
!important
因为在css3中可以设置多个背景图像,设置“none”只会创建一个新层并且不隐藏任何东西。
< a href = " http://www.css3.info/preview/multiple-backgrounds/ " > http://www.css3.info/preview/multiple-backgrounds/ http://www.w3.org/TR/css3-background/#backgrounds < / p >
我还没有找到解决办法。
用下面的规则替换你的规则:
div:not(#a) { // add your bg image here //}
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(0.5, #fff)); background-image: -webkit-linear-gradient(center top, #fff 0%, #fff 50%); background-image: -moz-linear-gradient(center top, #fff 0%, #fff 50%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ffffff', GradientType=0); background-image: linear-gradient(to bottom, #fff 0%, #fff 50%);
对于旧浏览器..如果你在一些frameworkk .css中定义了css,比如IE9中的select2.css background-image: -webkit-gradient等,你想通过另一个。css重写“background-image: none !important”是不行的。我使用相同的颜色来着色渐变,就像页面背景色一样。
当background-image: none !important;没有效果。 你可以使用:
background-image: none !important;
background-size: 0 !important;
HTML:
<div id="a" class="mydiv"></div>
CSS:
div#a { background-image:none; }
另一种方法:
div:not(#a) { //all rules goes here //add image here //div with id a not effected by these rules }
多重(非伪)
div:not(#a):not(#b):not(#c) { //all rules goes here //add image here //div with ids not effected with these rules }