我在我的樣式表中有一個鏈接列表的CSS規則。首先是對<a>
標籤一般規則,最後兩個是與故障接管了first-child
和last-child
僞類CSS特性IE8
/* weight: (1 class) + (3 elements) = 13 */
.topNavigation ul li a {
color: #666;
text-decoration: none;
display: block;
font-size: 28px;
margin: 5px 20px;
}
/*for both rules: (1 class + [1 pseudo class or 1 class]) + (3 elements) = 23 */
.topNavigation ul li:first-child a, .topNavigation ul li.first-child a {
margin-left: 0;
}
.topNavigation ul li:last-child a, .topNavigation ul li.last-child a {
margin-right: 0;
}
HTML中的第一個和最後一個孩子的具體規則是這樣的:
<div class="topNavigation">
<ul>
<li class="first-child current">
<a href="#">home</a>
</li>
<li>
<a href="#">services</a>
</li>
<li class="last-child">
<a href="#">blog</a>
</li>
</ul>
</div>
總體思路是鏈接包含在<li>
中,並且距「<li>
」的邊緣「保證金」。問題在於IE8不遵守特殊性,並仍在使用第一條規則(margin: 5px 20px;
)中所述的邊距。我已經在IE7,IE9,Chrome和其他瀏覽器中測試過它,只有IE8沒有跟隨。
這個規則有什麼問題嗎?還是我監督一個IE8的錯誤?
我使這個[的jsfiddle(http://jsfiddle.net/Galled/xzFuQ/),但我在所有瀏覽器中看到相同的行爲。你可以放置一張圖片或其他東西嗎? – Galled
據我所知,在IE8及以下版本中不支持最後一個孩子,而所有IE版本都支持第一個孩子直到7.我看到您已經手動添加了「first-child」和「last-child」類到你的HTML。在這種情況下,你可以很容易地使用普通的類選擇器,而不是僞選擇器,它可以在所有瀏覽器中完美運行。 – Raghav
@Srini:你的意思是「所有的IE版本都是從* 7開始的」:) – BoltClock