Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.11.2016, 21:50
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Как работает :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 сначала узнает сколько всего элементов имеет данный класс, а затем нужному по-порядку элементу задает свойства. Но нет)
Ответить с цитированием
  #2 (permalink)  
Старый 25.11.2016, 03:03
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

:nth-child()
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 25.11.2016, 03:45
Аватар для join
Профессор
Отправить личное сообщение для join Посмотреть профиль Найти все сообщения от join
 
Регистрация: 05.03.2012
Сообщений: 477

так как .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;
}
Ответить с цитированием
  #4 (permalink)  
Старый 25.11.2016, 08:52
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Спасибо, за объяснение
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как работает NodeJS erkesh Node.JS 2 24.07.2016 18:31
Owl carousel 2 не работает с табами - как поправить? ligisayan jQuery 7 08.05.2016 13:41
Как работает each AxelS jQuery 6 10.11.2014 10:37
Индексация AJAX сайтов - Как это работает? byFahrenheit AJAX и COMET 4 21.02.2013 17:09
не работает скрипт как ссылка Abraham jQuery 31 14.06.2011 03:04