Как работает :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, время: 23:36. |