У меня есть кусок HTML, который я не могу редактировать (без использования JavaScript).
Я пытаюсь скрыть абзац с помощью CSS. Параграф не имеет id
. Есть ли способ нацеливаться только на него, а не на его братство <p>
на CSS?
HTML:
<div id="foo">
<div></div>
<p> this is the paragraph to hide</p>
<p> this one should not be affected</p>
</div>
Это зависит от структуры разметки. Если <p>
является первым дочерним элементом его родителя, вы можете использовать :first-child
псевдо-класс :first-child
следующим образом:
#foo p:first-child { /* or simply #foo :first-child */
background-color: gold;
}
Примечание. Если вы хотите выбрать только прямой дочерний a > b
<p>
, вы должны использовать селектор children (a > b
) как: #foo > p:first-child
.
Но если есть другие братья и сестры перед первым элементом <p>
, вы можете использовать псевдокласс класса CSS3 :first-of-type
для выбора первого элемента <p>
в дереве дочерних элементов его родителя:
#foo p:first-of-type {
background-color: gold;
}
Опять же, для прямого ребенка вы можете использовать #foo > p:first-of-type
.
Из MDN:
Псевдокласс класса
:first-of-type
представляет первый родной тип своего типа в списке дочерних элементов его родительского элемента.
Вы можете обратиться к моему ответу за дополнительной информацией.
Это первый ребенок его родителя, поэтому вы можете однозначно выбрать это:
#foo > p:first-child
background-color
чтобы выделить выбранный элемент. Очевидно, вы должны использоватьdisplay: none;
скрыть стихию