не могу понять в чем разница между nth-child и nth-of-type в css?
Например я использую:
.container .elem:nth-child(1) {
property: value
}
Но это не всегда срабатывает для первого или n-ного элемента.
В чем может быть проблема?
p:nth-child(2)
сработает для второго элемента (выборка происходит среди всех элементов, вне зависимости типа; не важно p
, li
или a
), который является p
, если второй элемент во вложенности не p
то он не сработает.
p:nth-of-type(2)
сработает для, именно, второго p
, если вообще есть такой элемент или количество таких элементов больше или равно 2.
Если у тебя во вложенном блоке элементы одного типа, то разницы между двумя данными псевдоклассами вы не увидите.
div p:nth-child(2) {
background-color: #66ff66;
}
div p {
border: 1px solid black;
}
<div>
<p>Первый параграф</p>
<p>Второй параграф</p> <!-- Нужен этот элемент -->
</div>
div p:nth-of-type(2) {
background-color: #66ff66;
}
div p {
border: 1px solid black;
}
<div>
<p>Первый параграф</p>
<p>Второй параграф</p> <!-- Нужен этот элемент -->
</div>
Если вы добавите, допустим, заголовок в начало, то p:nth-child(2)
сработает для первого параграфа (второй элемент по порядку, который соответствует типу p
).
В случае с p:nth-of-type(2)
выбор будет происходить только среди элементов p
, а второй по счету p
, это то что нам нужно.
div p:nth-child(2) {
background-color: #66ff66;
}
div p {
border: 1px solid black;
}
<div>
<h1>Первый заголовок</h1>
<p>Первый параграф</p>
<p>Второй параграф</p> <!-- Нужен этот элемент -->
</div>
div p:nth-of-type(2) {
background-color: #66ff66;
}
div p {
border: 1px solid black;
}
<div>
<h1>Первый заголовок</h1>
<p>Первый параграф</p>
<p>Второй параграф</p> <!-- Нужен этот элемент -->
</div>
Абсолютно тот же принцип работает для first-child
и first-of-type
, если считать, что first-child
равно nth-child(1)
и first-of-type
равно nth-of-type(1)
.
Думаю довольно понятно объяснение, если есть вопросы могу дополнить ответ.
Как линию подчеркивания разместить на одной линии с текстом который не подчеркнут?
При нажатии на кнопку всплывало 4-5 кнопок, к примеру есть кнопка контактНажимаю и всплывает кнопки
Подскажите пожалуйста как доработать текст в переменной var dummyContent с помощью JS или JQuery, чтобы его можно было через copy\past кодом вставить в поле...