因此,我遇到了一种情况,即插入不同类/id 的元素会破坏该 :first-child 上的所有 css 规则。
<div id="nav">
<div class="nSub">abcdef</div>
<div class="nSub">abcdef</div>
<div class="nSub">abcdef</div>
<div class="nSub">abcdef</div>
<div class="nSub">abcdef</div>
</div>
.nSub:first-child { margin-top:15px; -moz-border-radius-topleft:5px; /* ... */ }
.nSub { background:#666; /* ... */ }
.nSub:last-child { -moz-border-radius-bottomleft:5px; /* ... */ }
只要我在上面插入另一个类/id的元素,就像这样:
$('nav').insert({top:'<div id="newWF"></div>'});
.nSub:first-child 的所有声明在 FF 3.6 和 Safari 4 中都被忽略。
编辑: 对不起,如果我没有说清楚:上面插入的元素应该没有类名“.nSub”
<div id="nav">
<div id="newWF"></div>
<div class="nSub">abcdef</div> <!-- BROKEN CSS -->
<div class="nSub">abcdef</div>
<div class="nSub">abcdef</div>
<div class="nSub">abcdef</div>
<div class="nSub">abcdef</div>
</div>