Css IE8:用什么来代替(n)型的第n个?

Css IE8:用什么来代替(n)型的第n个?,css,internet-explorer-8,css-selectors,Css,Internet Explorer 8,Css Selectors,我继承了下面的CSS代码,最初隐藏了一系列段落和一系列列表项的后面元素 .profileSection p:nth-of-type(n+2) { display: none; } .profileSection li:nth-of-type(n+6) { display: none; } 显然,这段代码在IE8中不起作用。隐藏这些元素的另一种方法是什么?下面是关于它的讨论: 作者提到,您可以通过使用 tagname + tagname + etc 或者使用 * + * +

我继承了下面的CSS代码,最初隐藏了一系列段落和一系列列表项的后面元素

.profileSection p:nth-of-type(n+2) {
    display: none;
}

.profileSection li:nth-of-type(n+6) {
    display: none;
}

显然,这段代码在IE8中不起作用。隐藏这些元素的另一种方法是什么?

下面是关于它的讨论:

作者提到,您可以通过使用

tagname + tagname + etc
或者使用

* + * + etc
我个人只想给这些项目添加一个特殊类。

+
,允许您选择所有相邻的兄弟姐妹。在您的情况下:
.profileSection p+p
。(如果你必须这样做,考虑把它包装在某物中,以防止其他浏览器看到它,比如)

但是如果您的标记包含的不是相邻的
元素,那么
+
将不会有帮助。例如:

<p>Alpha</p>
<h4>Header</h4>
<p>Beta</p>
阿尔法

标题 贝塔


如果您在站点上还没有某种类型或功能(这将有助于解决许多其他类似问题),那么向元素添加一个特殊类并选择使用该类将是最简单的。您也可以尝试下载并包含,这使得css3选择器在IE6-8中工作

我不认为这是一个好的做法,但是你可以试试
.profileSection li+li+li+li+li+li{}
这太棒了。你能使用jQuery吗?@Pow-Ian:不,它必须是纯CSS。如果必要的话,我可以编辑HTML,但我更愿意避免。我同意埃里克的观点。李+李。。。。或者在需要隐藏的项目中添加一个特殊的类。@EricG:在CSS3之前,这几乎是唯一的方法。如果需要IE8支持,我认为这是很好的。请记住,Selectivizr不支持jQuery的
nth类型。你必须包括另一个图书馆。他们的网站上有一个图表,显示了哪些库支持哪些属性。