問題描述
是否可以透過 HTML5 資料屬性 (例如,data-role
) 在 CSS 中選擇元素?
最佳解決方案
如果您的意思是使用 attribute selector,那麼,為什麼不:
[data-role="page"] {
/* Styles */
}
有各種各樣的屬性選擇器可以用於各種場景,這些場景都在我連結到的檔案中。請注意,儘管自定義資料屬性是 「新的 HTML5 功能」,
-
瀏覽器通常沒有任何支援 non-standard 屬性的問題,所以您應該能夠使用屬性選擇器進行過濾; 和
-
您不必擔心 CSS 驗證,因為 CSS 不關心 non-namespaced 屬性名稱,只要它們不會中斷選擇器語法。
次佳解決方案
在現代瀏覽器中,也可以選擇屬性,而不管其內容如何
有:
[data-my-attribute] {
/* Styles */
}
[anything] {
/* Styles */
}
例如:http://codepen.io/jasonm23/pen/fADnu
在很大一部分瀏覽器上工作。
注意這也可以在 JQuery 選擇器中使用,或者使用 document.querySelector
第三種解決方案
值得注意的是 CSS3 子字串屬性選擇器
[attribute^=value] { /* starts with selector */
/* Styles */
}
[attribute$=value] { /* ends with selector */
/* Styles */
}
[attribute*=value] { /* contains selector */
/* Styles */
}
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。