Использование псевдокласса в CSS

1a52c1b5 6d79 4192 8252 30a750a4026c HTML

Часто возникает ситуация, когда нужно задать одни стили для элемента, содержащего дочерние элементы или текст, и другие стили, если этих дочерних элементов или текста нет. Это можно сделать с помощью псевдокласса :empty.

Псевдокласс

Псевдокласс :empty применяется к элементам, у которых нет потомков, то есть отсутствуют дочерние элементы и текст, включая пробелы. Наличие комментариев или CSS-свойства content не влияет на элемент и не делает его непустым.

Пример использования

<p> </p>
<!-- Это непустой элемент, так как он содержит пробел -->

<p></p>
<!-- А это пустой элемент, так как не содержит элементы, текст и пробелы -->
p::before {
font-family: 'FontAwesome';
content: '\f118';
}

p:empty::before {
content: '\f4da';
}

p {
color: green;
}

p:empty {
color: red;
}

Что считается пустым элементом?

Псевдокласс :empty относится к элементам, не содержащим потомков. Потомками считаются как дочерние элементы, так и текст (включая пробелы). Комментарии и CSS-свойство content не делают элемент непустым.

Пустые элементы:

<p></p>
<p><!-- Комментарий --></p>

Непустые элементы:

<p> </p>
<p>
</p>
<p>
<!-- Комментарий -->
</p>
<p><span></span></p>

Важно отметить, что не только пробел, но и переход на новую строку делает элемент непустым.

Практическое использование

Псевдокласс :empty полезен, когда нужно скрыть сообщения об ошибках или предупреждения, не содержащие текст:

<div class="alert"></div>
<div class="alert">Текст сообщения</div>
.alert {
background: pink;
padding: 10px;
}

.alert:empty {
display: none;
}

Поддержка браузерами

Псевдокласс :empty поддерживается практически всеми актуальными версиями популярных браузеров, что делает его надежным инструментом для веб-разработки.

Заключение

Использование псевдокласса :empty позволяет эффективно управлять стилями элементов в зависимости от их содержимого. Это особенно полезно для улучшения UX, скрывая пустые элементы или выделяя их особым образом.

Оцените статью