Псевдокласс CSS `:empty`
Базовая версия Широко доступен
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
:empty — это CSS псевдокласс, который соответствует любому элементу, у которого нет дочерних узлов. Дочерними узлами могут быть как элементы, так и текст (включая пробелы). Комментарии, инструкции обработки и CSS content не влияют на то, считается ли элемент пустым.
Попробуйте
div:empty {
outline: 2px solid deeppink;
height: 1em;
}
<p>Element with no content:</p> <div></div> <p>Element with comment:</p> <div><!-- A comment --></div> <p>Element with nested empty element:</p> <div><p></p></div>
Примечание: В Selectors Level 4 псевдокласс :empty был изменён и теперь работает как :-moz-only-whitespace, однако пока ни один браузер не поддерживает это изменение.
Синтаксис
:empty {
/* ... */
}
Доступность
Вспомогательные технологии, например программы чтения с экрана, не могут обработать интерактивное содержимое, если оно пустое. У всего интерактивного содержимого должно быть доступное имя, которое задаётся текстовым значением родительского элемента интерактивного элемента (ссылок, кнопок и т. д.). Доступные имена делают интерактивный элемент видимым для дерева доступности — API, передающего полезную для вспомогательных технологий информацию.
Текст, задающий доступное имя интерактивного элемента, можно скрыть с помощью сочетания свойств, которые визуально убирают его с экрана, но оставляют доступным для обработки вспомогательными технологиями. Такой приём часто используют для кнопок, назначение которых передаётся только значком.
-
[Что такое доступное имя? Vispero](https://vispero.com/resources/what-is-an-accessible-name/) -
[Скрытое содержимое для повышения доступности Go Make Things](https://gomakethings.com/articles/hidden-content-for-better-a11y/) - Пояснения MDN к WCAG, рекомендация 2.4
-
[Понимание критерия успеха 2.4.4 Понимание WCAG 2.0 от W3C](https://www.w3.org/TR/UNDERSTANDING-WCAG20/navigation-mechanisms-refs.html)
Примеры
HTML
<div class="box"><!-- I will be lime. --></div>
<div class="box">I will be pink.</div>
<div class="box">
<!-- I will be pink in older browsers because of the whitespace around this comment. -->
</div>
<div class="box">
<p>
<!-- I will be pink in all browsers because of the non-collapsible whitespace and elements around this comment. -->
</p>
</div>
CSS
body {
display: flex;
justify-content: space-around;
}
.box {
background: pink;
height: 80px;
width: 80px;
}
.box:empty {
background: lime;
}
Результат
Спецификации
| Спецификация |
|---|
| Selectors Level 4 # the-empty-pseudo |
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari для iOS | Samsung Internet | WebView Android | WebView для iOS | |
empty |
1 |
12 |
1 |
9.5 |
3.1 |
18 |
4 |
10.1 |
2 |
1.0 |
2 |
2 |
matches_whitespace |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
См. также
-
:-moz-only-whitespace— версия с префиксом, реализующая изменения из Selectors Level 4 :blank
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:empty