2013-03-28 263 views
6

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

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

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

首先具有

选择每一个元素,它的src属性值始于 “HTTPS”

第二个有

个选择与郎所有元素属性值开始“EN”

+1

你不应该使用W3Schools的作为源!看看[W3Fools](http://w3fools.com/) – MarcinJuraszek 2013-03-28 09:20:55

+0

是的,但由于谷歌的搜索引擎优化,我不断从第一页搜索他们。 – 2013-03-28 09:24:37

+3

我知道这一点。然而,下次你会知道你应该跳过搜索结果中的这些链接:) – MarcinJuraszek 2013-03-28 09:26:05

回答

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']{/*...*/} 

^=更一般选择“字符串匹配”喜欢你的属性的第一个字母。

+0

你能否为此提供官方文档链接? – 2013-03-28 09:21:13

+0

参考https://developer.mozilla.org/en-US/docs/CSS/Attribute_selectors。官方网址:http://www.w3.org/TR/css3-selector/#attribute-selectors – 2013-03-28 09:21:16

+0

我会授予你选中的答案,尽管两个答案都是正确的,但你的答案更加完整。 – 2013-03-28 09:23:47

2

W3Schools的不是知识(check that site)的良好来源。你应该依靠官方CSS specification

E[foo^="bar"]的E元素“foo”的属性值开始正好与字符串“bar”

E[foo|="en"]的E元素“foo”的属性有值的连字符隔开的列表开始(从左侧)与“EN”用法

实例:

以下选择器表示的量,值的元件的 hreflang属性开头 “EN”,包括 “连接”, “EN-US”,和 “EN-利物浦式”:

a[hreflang|="en"]

以下选择表示HTML对象,引用一个 图像:

object[type^="image/"]

3

为什么在W3C官方文档发布时使用w3schools?

W3C CSS3 Selectors

W3C CSS2 Selectors

E[foo^="bar"]的E元素 “foo” 的属性值完全开始字符串 “bar”(属性选择CSS3)

E[foo|="en"]的E元素为“foo “属性具有以”en“(属性选择器CSS2)开头(从左侧开始)的以连字符分隔的值列表

1

请检查以下示例。你会在两个选择器之间得到更好的理解。

/* 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>

相关问题