为什么不CSS选择器 - “开头为”允许在最终双几许?(Why doesn't css se

2019-10-19 14:42发布

在写CSS我用BEM方法,我已经使用CSS选择器“开头为”发现- [class^="classname"]非常有用的。 声明为改性剂,即样式时尤其如此.block__element--modifier

因此编写CSS规则时,我想用[class^="block__element--"]针对特定的元素无论其改性剂。 然而,我注意到了双破折号在选择结束未能针对的元素。 然而,一个单破折号会工作。

我已经通过看CSS选择3级规格 ,但不能看到为什么双破折号会失败任何提及。

Answer 1:

我不认为应该引起你的任何问题,因为我只是下面的标识测试,效果很好...

<div class="block__element--modifier">Hello</div>

div[class^="block__element--"] {
    color: red;
}

演示

此外,这^=意味着, class名与上面的字符串开始,失败将导致你的选择的失败,以及,你可能喜欢使用*=代替其搜索的子串。

所以,如果你有一class说像之前声明

<div class="hello block__element--modifier">Hello</div>

将失败的选择演示 ,所以在这种情况下,你可能会喜欢使用

div[class*="block__element--"] {
    color: red;
}

演示2



文章来源: Why doesn't css selector - 'begins with' allow double-dash at end?