【问题标题】:css modification (can use ! not)?css修改(可以用!不可以)?
【发布时间】:2011-07-29 11:27:59
【问题描述】:

我可以做 .one.two 并且它针对具有“一”类和“二”类的任何元素,对吗?

如果我想定位具有类 "one" 但不能与 "two" 耦合的任何元素怎么办?例如 .one !.two 或类似的东西。

谢谢。

【问题讨论】:

    标签: css


    【解决方案1】:
    【解决方案2】:

    CSS3 包括:not(),但我认为 IE 还不支持它。适用于其他浏览器的最新版本:

    .one:not(.two) {
      //your styles
    }
    

    【讨论】:

    • 我可能会使用一些 jquery 尝试您的 css3 方法(不会是第一次)。不是最好的,但我会接受的。谢谢。
    【解决方案3】:
    .one {background: red;}
    .two {background: green;}
    .one.two {background: blue;}
    

    我不明白您为什么需要“不”,因为.one 的样式与.one but not .two 相同。如果您已经在使用多个类,那么您应该很高兴。

    【讨论】:

    • 这本来可行,但我正在使用 JS gen 类(有时最多构建 12 个),因此使用 :not 比采用逻辑方法更容易。谢谢你的好答案!
    • 嗯...也许可以用一个更大的例子扩展您的问题,以便我们了解您的最终目标。可能有不同的方式来考虑这个问题。
    【解决方案4】:

    听起来你需要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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-20
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      • 2011-06-23
      • 1970-01-01
      • 2020-01-02
      相关资源
      最近更新 更多