css - |= 和 ^= css 之间的区别

标签 css css-selectors

css 中的 |=^= 有什么区别?

由于这个链接它不是一个,但他们为什么要为两个重复的东西而烦恼。 http://www.w3schools.com/cssref/css_selectors.asp

[属性|=值] 和[属性^=值]

先有

Selects every element whose src attribute value begins with "https"

第二个有

Selects all elements with a lang attribute value starting with "en"

最佳答案

我认为w3c文档中的官方描述说明了一切:

E[foo|="en"] - 一个 E 元素,其 foo 属性值是以连字符分隔的以 en 开头的值列表

E[foo^="bar"] - 一个 E 元素,其 foo 属性值恰好以字符串“bar”开头

W3Schools 文档有时不精确,因此要获得好的文档,请转到 MDN , 或 Sitepoint或使用官方W3C Document .

基本上,|= 选择器匹配可选地紧跟连字符(分别为 - 或 U+002D)的单词,并且对复合类和语言属性很有用。

<div class="wrapper-inner"><span lang="en-GB">...</span></div>

div[class|='wrapper']{/*...*/}
span[lang|='en']{/*...*/}

^= 更通用一些,基本上是“子字符串匹配”,其行为与正则表达式中的 ^ 完全一样。

您可以在以下示例中看到两个选择器匹配方式的不同:

*{
color:red;
/* now, if |= or ^= selector fails, the color is red */
}

[class|=en],[class^=de]{
color:green;
}
div::after{content:"FAIL"}
[class|=en]::after,[class^=de]::after{content:"pass"}
<div class="en-US">Case 1.1: |=en matching "en-US": </div>
<div class="en">Case 1.2: |=en matching "en": </div>
<div class="en-">Case 1.3: |=en matching "en-": </div>
<div class="en,">Case 1.4: |=en matching "en,": </div>
<div class="english">Case 1.5: |=en matching "english": </div>
<div class="en ">Case 1.6: |=en matching "en ": </div>
<div class="de-DE">Case 2.1: ^=de matching "de-DE": </div>
<div class="de">Case 2.2: ^=de matching "de": </div>
<div class="de ">Case 2.3: ^=de matching "de ": </div>
<div class="deutsch">Case 2.4: ^=de matching "deutsch": </div>

关于css - |= 和 ^= css 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15678037/

相关文章:

javascript - 如何使用 jQuery 切换和动画使外部 div 在单击时从左侧进入,在 ri-click 时转到右侧?

html - 为什么 "\e034"出现在css中却没有创建对勾图标?

java - 使用 Selenium 和 Java 13 自动化 Span

javascript - "not descendent"或 "find outermost"的 CSS3 选择器?

html - 有没有办法用 CSS 中的一个选择器更改整个文档?

html - 从最后一个列表项中删除分隔符,但也删除分隔符

javascript - 没有重复链接的响应式导航?

html - HTML 列表中的第一个列表项显得稍高

jquery - overflow hidden 不适用于 jQuery .css 单击事件

html - 选择CSS中的每三个元素