Как работает :nth-child() ?
Добрый день уважаемые. Я пришел к пониманию того, что не правильно понимал, то как работает псевдокласс :nth-child() :) Помогите разобраться.
Если элементы вложены в один div проблем ни каких не возникает, а вот если элементов с классом много, то у меня возникают проблемы. Приведу пример. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .rabbit{ width: 100px; height: 100px; float: left; background-color: black; margin: 5%; } .bodyR{ width: 30px; height: 30px; float: left; background-color: green; margin: 10%; } .eyes { width: 10px; height: 10px; float: left; background-color: yellow; margin: 20%; } .bodyR:nth-child(2){ background-color: pink; } .eyes:nth-child(3){ background-color: orange; } </style> </head> <body> <div class="rabbit"> <div class="bodyR"> <div class="eyes"></div> </div> </div> <div class="rabbit"> <div class="bodyR"> <div class="eyes"></div> </div> </div> <div class="rabbit"> <div class="bodyR"> <div class="eyes"></div> </div> </div> <div class="rabbit"> <div class="bodyR"> <div class="eyes"></div> </div> </div> <div class="rabbit"> <div class="bodyR"> <div class="eyes"></div> </div> </div> </body> </html> Подскажите, почему мне не удается, разукрасить фон у второго элемента с классом .bodyR и у третьего элемента с классом .eyes. Я думал что при работе с классами :nth-child сначала узнает сколько всего элементов имеет данный класс, а затем нужному по-порядку элементу задает свойства. Но нет) |
:nth-child()
|
так как .rabbit имеет по одному потомку .bodyR и .eyes,
эти стили не найдут вторых и третьих потомков, их там просто не существует. .bodyR:nth-child(2){ background-color: pink;// ищет второго ребенка в теге с классом .bodyR } .eyes:nth-child(3){ background-color: orange;// ищет третьего ребенка в теге с классом .eyes } Это сработает так: .rabbit:nth-of-type(2) .bodyR{ background-color: pink; } .rabbit:nth-of-type(3) .eyes{ background-color: orange; } //only for your layout html body :nth-child(2) .bodyR{ background-color: pink; } body :nth-child(3) .eyes{ background-color: pink; } |
Спасибо, за объяснение
|
Часовой пояс GMT +3, время: 03:14. |