如何在IE6 + 7中通过CSS访问第n个元素

时间:2009-04-15 11:21:54

标签: css internet-explorer

我想知道如何在IE6 / IE7中使用CSS访问<li>的n th 元素。

HTML:

<ul class="myUL">
  <li><a href="" target="">Link1</a></li>
  <li><a href="">Link2</a></li>
  <li><a href="">Link3</a></li>
</ul>

现在假设我想访问Link2,该怎么做? 注意:不使用javascript.Only通过CSS。

3 个答案:

答案 0 :(得分:4)

你做不到。给它一个独特的类名。

您可以执行:first:last但不能执行此操作,我也不确定它们是否也适用于IE6。

<ul class="myUL">
  <li class="link1"><a href="" target="">Link1</a></li>
  <li class="link2"><a href="">Link2</a></li>
  <li class="link3"><a href="">Link3</a></li>
</ul>

并在CSS中引用ul.myUl li.link2

答案 1 :(得分:3)

正如Ian所说,静态CSS无法做到这一点。但是你可以使用JavaScript。

HTML:

<ul class="myUL" id="myUL">
    <li><a href="" target="">Link1</a></li>
    <li><a href="">Link2</a></li>
    <li><a href="">Link3</a></li>
</ul>

JS:

var n = 2;
nthElem = getElementById("myUL").childNodes[n-1];
nthElem.style = "color: red";
//or
nthElem.className = "cssClassForNthElem";

答案 2 :(得分:1)

就像Ian所说,IE7中的IE6和AFAIK也是不可能的。 IE7和IE8实际上支持CSS 2.1中的:first-child选择器(我确定你可以猜到它是什么),但不是{3}}也不是{3}} CSS 3。