:不是vs:nth-​​child - 我应该选择哪一个?

时间:2014-10-04 18:29:42

标签: html css

我有一个包含多个<li>的列表,我希望在所有这些列表之间添加边距。

我更喜欢以下哪一项? (如果有的话)为什么它比另一个好?

  1. li:not(:last-child) { margin-bottom: 5px; }
    1. li:nth-child(n+2) { margin-top: 5px; }
    2. This page表明:not选择器的浏览器支持率高于:nth-child。 (因为:nth-child在FF3中不起作用)我正在寻求广泛的浏览器支持。那个页面已经过时了,所以我想在这里问明智社区。我有什么理由比较喜欢彼此吗?

1 个答案:

答案 0 :(得分:2)

我认为您找到的最佳浏览器支持将间距设为margin-top,并在:first-child的第一个上删除它。 :first-child比其他伪选择器有更好的支持,并且受 IE8 IE7支持更好。

此外,以这种方式做事意味着当你只有1个元素时,你就不会有无用的余量,这就是你的心态。

如果你必须支持旧的IE,那么我认为你必须使用JS。