如何正确使用nth-child?

时间:2013-12-17 06:15:01

标签: css

我正在尝试学习Codecademy如何正确使用nth-childs。它说

p:nth-child(2) {
    color: red;
}

将每个作为其父元素的第二个子元素的段落变为红色。

所以我认为这意味着

body:nth-child(2) {
    color: red;
}

<body> 
<p> some text </p> 
<p> some text </p>
</body>

意味着第二段会变红。但这不起作用......我做错了什么?

4 个答案:

答案 0 :(得分:4)

:nth-child适用于元素,而不适用于元素的子元素。 body:nth-child(2)应该被理解为“每个body元素,它是其父元素的第二个子元素”,而不是“每个元素(*),它是body的第二个子元素元素”。

如果要设置第二个body > p:nth-child(2)元素的p标记,请使用body

答案 1 :(得分:2)

body:nth-child(2) {
    color: red;
}

你正在选择第二个不存在的body元素,如果你想得到你必须写的第二个p元素:

body p:nth-child(2) {
    color: red;
}

Here is a Fiddle

答案 2 :(得分:0)

任何父母,身体,div或其他容器的第二个孩子。

示例:

<!doctype html>
<html>
    <head>
        <title>
            Bla!
        </title>
        <style type='text/css'>
            div:nth-child(2) { background-color:red; }
        </style>
    </head>
    <body>
        <div> First child (normal)
            <div> first child of first child (normal)  </div>
            <div> Second child of first child (red) </div>
            <div> Third child of first child (normal) </div>
        </div>
        <div> 2 Second child (red) </div>
        <div> 3 Third child (normal) </div>
    </body>
</html>

答案 3 :(得分:-1)

body:nth-child(2) {
    color: red;
}

在上面的代码中,您指向页面的第二个主体,这是不可能的。