【发布时间】:2011-07-29 11:27:59
【问题描述】:
我可以做 .one.two 并且它针对具有“一”类和“二”类的任何元素,对吗?
如果我想定位具有类 "one" 但不能与 "two" 耦合的任何元素怎么办?例如 .one !.two 或类似的东西。
谢谢。
【问题讨论】:
标签: css
我可以做 .one.two 并且它针对具有“一”类和“二”类的任何元素,对吗?
如果我想定位具有类 "one" 但不能与 "two" 耦合的任何元素怎么办?例如 .one !.two 或类似的东西。
谢谢。
【问题讨论】:
标签: css
CSS3 包括:not(),但我认为 IE 还不支持它。适用于其他浏览器的最新版本:
.one:not(.two) {
//your styles
}
【讨论】:
.one {background: red;}
.two {background: green;}
.one.two {background: blue;}
我不明白您为什么需要“不”,因为.one 的样式与.one but not .two 相同。如果您已经在使用多个类,那么您应该很高兴。
【讨论】:
听起来你需要read about specificity。
.one 将选择所有 class="one" 元素,.two 将选择所有 class="two" 元素。
.one.two 将选择所有class="one two" 元素,并将覆盖可能为该元素设置的.one 或.two 的任何规则。
.one:not(.two) 选择器将执行您想要的否定,但它不兼容跨浏览器。
添加像.one:not(.two) 这样的规则的最跨浏览器兼容的方法是添加覆盖:
.one
{
color: blue;
}
.one.two
{
color: black;
}
【讨论】: