.foo bar:last-of-type {
background-color: red;
}
<div class="foo">
<bar>bar</bar>
<bar>bar</bar>
<bar>bar</bar>
<span>span</span>
</div>
<div class="foo">
<bar>bar</bar>
<bar>bar</bar>
<bar>bar</bar>
<baz>baz</baz>
</div>
最後bar
出現在Chrome和Firefox這兩種情況下的紅色工作。但是,在IE11和Edge中,它在第二種情況下不起作用。這是怎麼回事?
我認爲瀏覽器未知所有*元素,直到它們通過默認樣式表引入。但是,通過在作者樣式中簡單地「註冊」一個自定義元素,這足以讓它起作用。我在這裏寫了:http://stackoverflow.com/q/36380449/3597276 –
創建AngularJS指令時,未知元素*是*標準。這是一個無賴。 – adamdport
@Michael_B:瀏覽器對元素的知識是由其DOM實現控制的,而不是由任何樣式表控制的。 CSS只是DOM的消費者。這就是爲什麼[「CSS類」是一個用詞不當]的原因(http://stackoverflow.com/questions/18701670/can-i-use-non-existing-css-classes/18701712#18701712)。 – BoltClock