【问题标题】:CSS select an element that contains specific classes onlyCSS 选择仅包含特定类的元素
【发布时间】:2017-05-21 18:28:31
【问题描述】:

例如:

<div id="element1" class="c1 c2 c3"></div>
<div id="element2" class="c1 c2 c3 b1"></div>

是否有任何 CSS 选择器可以让我选择仅包含类 c1、c2 和 c3 的元素。

所以我希望能够获得element1 但不是 element2,并且我没有使用 ID,因为实际上每个页面上的 ID 都相同,但我希望能够查找 div 何时只有这些类而没有其他类。

谢谢!

【问题讨论】:

  • [class="c1 c2 c3"] ?

标签: css css-selectors styles


【解决方案1】:

使用Attribute Selectors

[class="c1 c2 c3"] {
    color: red;
}
<div id="element1" class="c1 c2 c3">Item 1</div>
<div id="element2" class="c1 c2 c3 b1">Item 2</div>

【讨论】:

  • 我试过了,但它似乎没有选择我想要的东西,或者任何东西。我要查找的类位于 body 元素上,在匹配它们时,我想将包含的元素设置为 display:none。这就是标记的实际样子:&lt;body class="c1 c2 c3"&gt; &lt;div class="hide-this"&gt;&lt;/div&gt; &lt;/body&gt; 在某些页面上,类 c1、c2 和 c3 以及其他一些出现在 body 标记中。所以我想在body只有c1、c2、c3的任何地方隐藏hide-this div。我试过了:body[class="c1 c2 c3"] .hide-this{ display: none; }
    我这样做对吗?
  • 是的,你是。这是您在jsfiddle.net/b84gg94q 工作的代码
  • 好的,谢谢。一定是一些 SharePoint 怪异,这会阻止它工作。我认为这应该是正确的方法。
  • 确保你的 body 有相同顺序的类名,并且你的目标元素的显示属性没有被其他类覆盖。
  • 我发现了问题。 c2 和 c3 之间有 4 个空格。所以 [class=""] 选择器需要与在元素的 class 属性中输入的内容完全相同。很高兴知道.. 可能是个问题。
猜你喜欢
  • 2012-12-13
  • 2013-05-01
  • 2011-04-20
  • 2017-09-20
  • 2018-12-04
  • 2016-12-12
  • 1970-01-01
  • 2021-12-20
  • 2022-12-06
相关资源
最近更新 更多