如何在CSS中选择第二个元素?

时间:2014-05-06 16:04:26

标签: html css navigation html-lists

我想用CSS在html中选择元素标签。例如,如何在一个UL中选择第二个li a Plus之后的任何东西。我想在之后设置第二个li加左边距。第一个<li><a>不会向右移动并修复,但是其他移动到右边的边距

        <ul style="list-style:none;">
        <li>
            <a href="#">Contact Us</a>
        </li>
        <li>
            <a href="#">Home</a>

        </li>
        <li>
            <a href="#">Project</a>
        </li>
        <li>
            <a href="#">aboutUs</a>
        </li>
    </ul>

联系我们主页项目aboutUs    我想保留ContactUs左边缘并且不要向右移动,但是在第二个li之后设置margin-left,50px用于home + project + aboutUs;

1 个答案:

答案 0 :(得分:4)

这应该适合你:http://jsfiddle.net/MFtU2/1/

ul > li:not(:first-child) {
  margin-left: 50px;
}

如果您希望支持不支持CSS3 :not()选择器的旧版浏览器,最好选择第一个li,并在给予所有{{1}时给它margin:0; } li的余量:http://jsfiddle.net/MFtU2/3/

50px

修改

鉴于OP稍微改变了问题的参数,我想我会更新我的答案。除了想要定位除第一个之外的所有ul.ie8safe > li:first-child { margin-left: 0; } ul.ie8safe > li { margin-left: 50px; } 之外,您还希望让它们显示在同一水平面上。为此,您希望每个li占用尽可能少的空间,因为默认情况下,每个li将占用包含li的全部宽度。有几种方法可以做到这一点,但我更喜欢使用ul

float: left;

我附上了 updated fiddle 来展示这会是什么样子。请注意,此技术适用于旧版浏览器以及新版浏览器。