我有一个通用规则,给所有div一个背景图像。 我有一个div (id='a'),我不希望它有背景图像。 我需要给出什么css规则呢?


当前回答

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”是不行的。我使用相同的颜色来着色渐变,就像页面背景色一样。

其他回答

因为在css3中可以设置多个背景图像,设置“none”只会创建一个新层并且不隐藏任何东西。

http://www.css3.info/preview/multiple-backgrounds/ http://www.w3.org/TR/css3-background/#backgrounds

我还没有找到解决办法。

div#a {
  background-image: url('../images/spacer.png');
  background-image: none !important;
}

我使用了一个透明的间隔图像,除了规则来删除背景图像,因为IE6似乎忽略了background-image: none,即使它被标记为!important。

如果你的div规则只是div{…},然后#a{…}就足够了。如果它更复杂,你需要一个“更特定”的选择器,就像CSS规范中定义的那样。(#a比div更具体,只是算法中的一个方面。)

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 !没有效果。 你可以使用:

background-size: 0 !important;