Hello是否有一种方法可以使用css设置页面上第二个元素的样式,同一个类与第一个元素略有不同。
例如,我在一个topbardropdownmenu类的页面上有两个ul。我想给第二个ul一个不同的背景到第一个。有没有办法在改变html的情况下做到这一点?
答案 0 :(得分:12)
您可以使用:nth-child()
伪选择器执行此操作。它虽然是CSS3,但在某些浏览器中不受支持(例如< = IE8&< = FF3.0不支持它)。
.topbardropdownmenu:nth-child(2) { background: #FF0000; }
你可以用跨浏览器兼容的方式使用JavaScript,如果这是你的选择。
答案 1 :(得分:8)
<ul>
元素的含义是什么?我假设<div id = "lists">
/* First element */
div > ul.topbardropdownmenu:first-child{
}
/* Rest of the elements */
div > ul.topbardropdownmenu{
}
...替代地
div > ul.topbardropdownmenu:not(:first-child)
答案 2 :(得分:3)
这取决于您的用户使用哪些浏览器,您可以使用nth-of-type
css伪选择器:
ul.topbardropdownmenu:nth-of-type(2) {
/* styles the second ul of class=topbardropdownmenu
}
如果这些ul
元素的出现有特定模式,您可以使用后代和/或兄弟选择器:
div > ul.topbardropdownmenu {
/* styles all ul.topbardropdownmenu that are the immediate descendants of a div */
}
p + ul.topbardropdownmenu {
/* styles all ul.topbardropdownmenu that immediately follow a p */
}
答案 3 :(得分:1)
查看CSS3 nth-child() pseudo-class。
答案 4 :(得分:0)
您可以使用:nth-child http://css-tricks.com/how-nth-child-works/但IE可能会遇到困难。考虑一下这个jQuery替代方案:
$(".class").eq(1).css();