Проблема с нечетными / четными дочерними элементами в nth-child - PullRequest
13 голосов
/ 04 марта 2011

У меня есть такой веб-сайт:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="article_style.css" />
</head>
<body>
    <div class="section">
    <!--<h1>header</h1>-->
        <div>
            paragraph
        </div>
        <div>
            paragraph
        </div>
        <div>
            paragraph
        </div>
    </div>
    <div class="section">
        <div>
            paragraph
        </div>
        <div>
            paragraph
        </div>
        <div>
            paragraph
        </div>
    </div>
</body>
</html>

и это CSS:

div.section
{
    border: 1px solid black;
}
div.section div:nth-child(even)
{
    color: Green;
}
div.section div:nth-child(odd)
{
    color: Red;
}

И вот результат:

result

Это нормально, потому что я получаю красный для нечетного div и зеленый для четного в каждой секции .Но когда я добавляю заголовок в начале первого раздела (закомментированный код в примере), я получаю это:

result2

Я не хочу этого.Я хочу иметь как раньше, но только с заголовком в первом разделе.Так что сначала заголовок, а затем красный абзац.

Ответы [ 2 ]

51 голосов
/ 04 марта 2011

Используйте nth-of-type вместо:

Live Demo

div.section
{
    border: 1px solid black;
}
div.section div:nth-of-type(even)
{
    color: Green;
}
div.section div:nth-of-type(odd)
{
    color: Red;
}
4 голосов
/ 03 апреля 2013
div > :nth-child(3)     the third child of a div element
div > :nth-child(even)  every even child of a div element
div > :nth-child(odd)   every odd child of a div element
div > :nth-child(3n)    every third child of a div element
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...