爲什麼我們需要CSS [attribute|=value] Selector在所有時候CSS3 [attribute*=value] Selector基本完成同樣的事情,瀏覽器兼容性幾乎相似?有沒有什麼是第一個CSS選擇器,第二個不能?這是第一次遇到兩個非常相似的選擇器,並想知道爲什麼第一個存在於首位。CSS [屬性| =值] VS [屬性* =值]選擇
回答
他們是截然不同的:
[attr|=value]
表示使用attr的屬性名的元素。它的值可以完全是「值」,或者可以以「值」開始,緊接着是「 - 」(U + 002D)。它可以用於語言子代碼匹配。
[attr*=value]
表示具有的ATTR的屬性名的元素和值中包含字符串「值」爲子串中的至少一個發生。
https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
從DOC:
[ATTR | =值]表示使用attr的屬性名的元素。 它的值可以完全是「值」,或者可以立即以「值」開始,後面跟着「 - 」(U + 002D) 。它可以用於語言子代碼匹配。
[ATTR * =值]表示的ATTR屬性名和 值中包含字符串「值」爲 子串的至少一個發生的元素。
視覺差異:
[ATTR | =值]
/* Any span in Chinese is red, matches simplified (zh-CN) or traditional (zh-TW) */
span[lang|="zh"] {color: red;}
<span lang='zh'>zh</span>
[ATTR * =值]
/* All links to with "example" in the url have a grey background */
a[href*="example"] {background-color: #CCCCCC;}
<a href="www.example.com">example<a/>
在相同的代碼例如:
div[color|="red"] {
background: red;
}
div[color*="blue"] {
color: blue;
}
<div>
<div color='red-yellow'>This shoud has only red background</div>
<div color='blue'>This shoud has only blue color</div>
<div color='red-blue'>This shoud has blue color and red background</div>
<div color='blue-red'>This shoud be only blue color</div>
</div>
參考
有很多這兩個選擇器
[lang|=en] {
background: yellow;
}
[lang*=en] {
color:red;
}
<p lang="en">Hello!</p>
<p lang="en-us">Hi!</p>
<p lang="en-gb">Ello!</p>
<p lang="usen">Hi!</p>
<p lang="noen">Hei!</p>
<p><b>Note:</b> For [<i>attribute</i>|=<i>value</i>] to work in IE8 and earlier, a DOCTYPE must be declared.</p>
的之間的差異[屬性| =值]選擇器用於選擇具有指定的屬性起始元件與指定的值。
[attribute * = value]選擇器匹配其屬性值包含指定值的每個元素。
見的例子,以獲取有關這兩個選擇一個清晰的概念。
第一個選擇器確保屬性值以提交的值開始,第二個選擇器只需要包含它的屬性值。
如果必須區分在同一屬性中不同位置具有相同字符串的屬性,這將會很有幫助。
CSS隨着時間的推移已經發展,並且隨着更多選擇器的需求和需求的發展,功能也不斷增加。
CSS [attribute | = value]選擇器在CSS3(最新版本)之前定義,並且在CSS 2.1中可用。正如指出的頁面鏈接到您:
用於選擇與指定的屬性元素開始與指定的值。
雖然這在大多數情況下非常方便,但有時候會有框架,它的類定義中包含了來自someString_somethingUseful_somethingElse
的結構化css。
現在說我想選擇其中somethingUseful
位的所有元素。上面的選擇器不允許我這樣做,因爲位於類名中間的類定義的somethingUseful
位。與somethingElse
位相同,它位於最後。
因此,在CSS3,我們看到引進[屬性* =值]選擇這使我們能夠選擇可以具有這些關鍵字作爲其定義一個子元件(儘管不一定是在前面)看的:
選擇器的每一個元素,其屬性值含有指定值相匹配。
- 1. 屬性值VS屬性值
- 2. CSS文件屬性:值vs屬性:值(空格)
- 3. CSS - 如何選擇多個屬性值?
- 4. HTML選擇值屬性
- 5. 選擇BypassPrepare屬性的值
- 6. CSS屬性的值
- 7. CSS屬性選擇器vs CSS選擇器
- 8. JSF/CSS屬性選擇器
- 9. 負載從屬性選擇性屬性文件基於鍵值
- 10. 按屬性值篩選Xpath並選擇替代屬性
- 11. css字體屬性vs文本屬性
- 12. CSS屬性選擇與
- 13. jQuery的CSS屬性選擇
- 14. 合併CSS屬性選擇
- 15. CSS:拒絕屬性選擇
- 16. CSS選擇風格屬性
- 17. 是否需要引用CSS屬性選擇器值中的值?
- 18. 根據屬性值選擇複選框
- 19. 如何正確轉義css/js屬性選擇器中的屬性值[attr = value]?
- 20. Xml屬性vs Xml屬性?
- 21. 選擇基於屬性的特定屬性值
- 22. jquery的,屬性選擇器,獲得當前屬性值
- 23. jQuery,按屬性值選擇,添加新屬性
- 24. 選擇具有特定屬性值的屬性
- 25. 訪問css屬性值
- 26. 屬性值從CSS爲Javascript
- 27. 一個css屬性值優於另一個cs屬性值
- 28. 值 - 屬性和屬性
- 29. 更改選擇標籤屬性值
- 30. 選擇xml屬性的唯一值
,他們是**類似的事實**並沒有使他們的** **相同。他們之間有明確的區別。 –