| =和^ = css之间的区别

时间:2013-03-28 09:17:01

标签: css css-selectors

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

由于这个链接它不是一个,但为什么他们会打扰两件事重复。 http://www.w3schools.com/cssref/css_selectors.asp

[attribute | = value]和[attribute ^ = value]

首先有

  

选择src属性值以其开头的每个元素   “HTTPS”

第二个

  

选择具有以“en”

开头的lang属性值的所有元素

4 个答案:

答案 0 :(得分:4)

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

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

开头

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

开头

Always try to avoid using w3schools - it has very poor quality

要获得良好的文档,请访问MDNSitepoint或使用官方W3C Document

基本上|=选择器对复合类和语言属性很有用。

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

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

^=通常选择“子字符串匹配”,就像属性的第一个字母一样。

答案 1 :(得分:4)

为什么在W3C的官方文档出现时使用w3schools?

W3C CSS3 Selectors

W3C CSS2 Selectors

  

E[foo^="bar"]一个E元素,其中&#34; foo&#34;属性值恰好以字符串&#34; bar&#34;开头。 (属性选择器CSS3)

     

E[foo|="en"]一个E元素,其中&#34; foo&#34;属性具有以连字符分隔的值列表(从左侧开始),使用&#34; en&#34; (属性选择器CSS2)

答案 2 :(得分:3)

w3schools不是一个很好的知识来源(check that site)。你应该依靠官方CSS specification

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

E[foo|="en"]一个E元素,其“foo”属性具有以连字符分隔的值列表(从左侧开始),带有“en”

用法示例:

  

以下选择器表示其值为的元素   hreflang属性以“en”开头,包括“en”,“en-US”和   “烯利物浦式”:

     

a[hreflang|="en"]

  

以下选择器表示引用的HTML对象   图像:

     

object[type^="image/"]

答案 3 :(得分:2)

请查看以下示例。您将在两个选择器之间获得更好的理解。

/* select all lang attribute starting with "en" */
[lang^=en] {
    border: 1px solid red;
}

/* select all hyphen-separated lang attribute starting with "en" */
[lang|=en] {
    background: yellow;
}
<p lang="en">Hello!</p>
<p lang="en-us">Hi!</p>
<p lang="en_gb">Ello!</p>