【问题标题】:Adding a :NOT selector to a CSS request [duplicate]向 CSS 请求添加 :NOT 选择器 [重复]
【发布时间】:2015-03-17 21:56:49
【问题描述】:

我有一堂课:

li:before {
  margin: 0 5px 0 -15px;
  color: #005984;
  content: "■";
}

但如果它包含在具有 class="k-list" 的元素中,我不希望它应用

<ABC class="k-list">
    not applied here
</ABC> 

如何在上面的 css 中添加 :NOT?

【问题讨论】:

    标签: css css-selectors


    【解决方案1】:

    最好的方法是覆盖添加到元素中的任何内容,如果它包含在类 .k-list 的元素中:

    li:before {
      margin: 0 5px 0 -15px;
      color: #005984;
      content: "■";
    }
    .k-list li:before {
      display: none;
    }
    

    如果出于某种原因,您希望确保 DOM 中至少有一个较高的元素不具有 k-list 类(包括 html 和 body):

    *:not(.k-list) li:before {
      margin: 0 5px 0 -15px;
      color: #005984;
      content: "■";
    }
    

    但是,如果您知道要从哪里开始这样的搜索,它可能会更具体、更有用:

    body *:not(.k-list) li:before {
      margin: 0 5px 0 -15px;
      color: #005984;
      content: "■";
    }
    

    上述 CSS 将排除任何不包含在 body 元素中的元素,使其无法满足 *:not(.k-list) 条件。

    【讨论】:

    • 您应该在您的个人资料中添加“回答重复的问题”:-D
    • @TylerH 真的吗?人们可以回答任何他们想回答的问题。每个人都回答重复的问题。
    • @JoshCrozier 这是一个轻松的笑话。
    • @TylerH 点数。我只是想我有一段时间没有回答一个,所以呃。并不是说有很多好问题在流传。
    • @Anonymous 当然,就像我告诉乔希一样,这是个玩笑;我们不能指望人们对之前提出的每个主题、标签和问题都非常熟悉。我知道这是骗子的唯一原因是因为我专注于css 和相关标签。不用担心。
    猜你喜欢
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 2015-01-15
    • 2015-12-16
    相关资源
    最近更新 更多