【问题标题】:Making CSS only apply when a class is not present?仅当类不存在时才应用 CSS?
【发布时间】:2013-01-10 02:45:31
【问题描述】:

我有这行来自 Twitter Bootstrap 的 CSS,

.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]
{
    background-image:url("http://cdn.mydomain.com/static/img/glyphicons-halflings-white.png");
}

如果 li 上存在已禁用的类,我希望它忽略/不应用该 CSS .这很容易吗?

【问题讨论】:

标签: html css


【解决方案1】:

您可以将您想要的一般情况下的样式应用于所有内容,然后,在您的脚本中向下,您可以用模仿您默认行为的“禁用”类的另一种样式覆盖它。

类似这样的:http://jsfiddle.net/8cQvz/1/

div{
 display:block;
 height:25px;
 width: 25px;
 background-image:url("image.png");
 float:left;
 margin:5px;
}

div.no
{
 background-image:none;
}

【讨论】:

  • 我尝试设置background-image:none; 并使用不同的背景图像(甚至在元素本身上),但它总是只应用两个图像:(
  • 您是在应用原始 CSS 之前还是之后应用它?您需要稍后放置脚本。您也可以使用 !important 覆盖,但在这种情况下您不必这样做。
  • 如果没有看到你的标记就很难知道,但你确定它会将样式应用于特定的 dom 元素,而不是元素的子元素或父元素吗?
  • 这也适用于我的网站,但它不断被一堆其他背景 css 样式覆盖,!important 甚至没有帮助,我还能做些什么吗?
  • 它可以很好地处理颜色,但它仍然无法使用图像,我尝试在a 元素本身上设置background-image: none;,它仍然显示上面的图像
猜你喜欢
  • 2019-05-31
  • 2020-11-10
  • 2013-01-23
  • 2013-05-23
  • 2019-03-05
  • 2021-11-16
  • 2016-10-19
相关资源
最近更新 更多