我想使用以下内容来定位我的 div 中最后一个 ul 的最后一个链接 (a)。于是想到了这个:
#menu ul:last-child li a {
/*.....*/
}
我不能手动向那个元素添加一个类,即使我想动态地做,我仍然必须以上述方式定位元素。
任何想法为什么这不起作用?
我想使用以下内容来定位我的 div 中最后一个 ul 的最后一个链接 (a)。于是想到了这个:
#menu ul:last-child li a {
/*.....*/
}
我不能手动向那个元素添加一个类,即使我想动态地做,我仍然必须以上述方式定位元素。
任何想法为什么这不起作用?
如果你想要最后一个 ul中的最后一个链接(假设链接在-element 内),这就是你想要的:li
#menu ul:last-child li:last-child a {
/*.....*/
}
#menu
返回菜单元素。ul:last-child
返回最后ul
一个#menu
li:last-child
返回其中的最后li
一个ul
没试过,但我想这会奏效。
我只是猜测你的 HTML 是什么,但是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css" >
div ul:last-child li:last-child a:last-child {
background-color: red;
}
</style>
</head>
<body>
<div>
<ul><li>First list</li></ul>
<ul><li>Second list</li></ul>
<ul>
<li>Item 1</li>
<li>
<a href="#">First Link</a>
<a href="#">Last Link</a>
</li>
</ul>
</div>
</body>
</html>
我已经在 safari (4.0.3) 和 firefox(3.5.4) 中测试了你的代码,一切正常,我不知道在 IE8 中!
考虑到这是 CSS3 标准中定义的新伪类(选择器),并非所有浏览器都完全支持,最老的浏览器也不支持!
作为一般规则,出于性能原因,我建议您避免使用超过 2 级的 CSS 指令(如果您真的需要,最多 3 级)!
但是,我认为如果您不想将样式直接应用于标记元素,则必须找到 javascript 解决方案!
CSSlast-child
在 IE 中不起作用,包括 IE8。
它应该可以在所有其他当前浏览器中使用,但是如果您打算在需要支持 IE 的站点上使用它,则需要找到另一种方法来实现它。
这个页面有一个完整的 CSS 选择器列表,以及哪些浏览器支持它们:http: //quirksmode.org/css/contents.html