我继承了以下CSS代码,最初隐藏了一系列段落和一系列列表项的后一个元素。
.profileSection p:nth-of-type(n+2) {
display: none;
}
.profileSection li:nth-of-type(n+6) {
display: none;
}
显然,此代码在IE8中不起作用。隐藏这些元素的另一种方法是什么?
答案 0 :(得分:4)
以下是对它的讨论:
http://www.thebrightlines.com/2010/01/04/alternative-for-nth-of-type-and-nth-child/
作者提到您可以使用
引用特定的子元素tagname + tagname + etc
或者使用
获得通用儿童* + * + etc
我个人只会为这些项目添加一个特殊课程。
答案 1 :(得分:3)
+
,adjacent sibling selector,允许您选择立即相邻的所有兄弟姐妹。在您的情况下:.profileSection p+p
。 (如果必须这样做,请考虑将其包装成某些内容,以防止其他浏览器看到它,例如conditional comments。)
但如果您的标记包含彼此相邻的+
元素之外的其他内容,<p>
将无济于事。例如:
<p>Alpha</p>
<h4>Header</h4>
<p>Beta</p>
如果您在网站上还没有某种shiv或moderizr功能(这有助于解决许多其他类似问题),那么最简单的方法是在元素,并选择使用该类。
答案 2 :(得分:0)
你也可以尝试下载并包括selectivizr,这使得css3选择器可以在IE6-8中运行