考慮下面的HTML:
<div data-name="something">
<p>Content in 'something'</p>
<span data-someAttribute="someAttribute">Content in 'someAttribute' div.</span>
</div>
而CSS:
[data-name] {
background-color: red;
}
[data-name] [data-someAttribute] {
display: block;
background-color: #ffa;
}
這是完全有效的(或者,至少,它是在Chromium 14/Ubuntu 11.04中實現的)。我已更改使用name
屬性(因爲它們對div
元素或其他非form
元素無效),並且使用了前綴自定義屬性,它們在HTML5中有效,並且可能不是「有效」的HTML 4,他們似乎仍然被這些瀏覽器所理解。
JS Fiddle demo。
值得一提的是,你還可以使用屬性=等於符號,根據他們data-*
屬性的值只選擇某些元素:
<div data-name="something">
<p>Content in data-name='something' element.</p>
<span data-someAttribute="someAttribute">Content in 'someAttribute' div.</span>
</div>
而CSS:
[data-name] {
background-color: red;
}
[data-name="something"] {
font-weight: bold;
}
[data-name] [data-someAttribute] {
background-color: #ffa;
text-decoration: underline;
font-weight: normal;
}
JS Fiddle demo 。
而且,如果CSS3是一個選擇,它可以使用屬性 - 開始 - 與(^=
)表示法:
[data-name] {
background-color: red;
}
[data-name^="s"] {
font-weight: bold;
}
[data-name] [data-someAttribute] {
background-color: #ffa;
text-decoration: underline;
font-weight: normal;
}
JS Fiddle demo。
和屬性端-與($=
)表示法:
[data-name] {
background-color: red;
}
[data-name$="ing"] {
font-weight: bold;
}
[data-name] [data-someAttribute] {
background-color: #ffa;
text-decoration: underline;
font-weight: normal;
}
參考文獻:
下面是一個例子:http://jsfiddle.net/sde6t/ – FakeRainBrigand 2011-12-18 16:14:43
有什麼你不知道關於CSS的時鐘? ;) – stephenmurdoch 2011-12-18 16:20:37
@stephenmurdoch:BoltClock知道如何實現CSS6父母選擇器符號,但沒有告訴我們,因爲沒有瀏覽器能跟上他。 – 2011-12-18 16:25:13