IE8:用什么代替nth-of-type(n)?

时间:2012-12-11 21:17:02

标签: css css3 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中不起作用。隐藏这些元素的另一种方法是什么?

3 个答案:

答案 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>

如果您在网站上还没有某种shivmoderizr功能(这有助于解决许多其他类似问题),那么最简单的方法是在元素,并选择使用该类。

答案 2 :(得分:0)

你也可以尝试下载并包括selectivizr,这使得css3选择器可以在IE6-8中运行