- visibility
- Синтаксис
- Значения
- Синтаксис
- Интерполяция
- Примеры
- Базовый пример
- HTML
- CSS
- Пример с таблицей
- HTML
- CSS
- Соображения доступности
- Примечания
- Спецификация
- Совместимость с браузерами
- Found a content problem with this page?
- Атрибут hidden
- Пример
- Как пишется
- Подсказки
- На собеседовании
- Ещё четыре способа скрыть и показать элементы при помощи HTML и CSS
- Масштабирование элемента в 0
- HTML5-атрибут hidden
- Нулевой height и overflow:hidden
- Фильтр размытия
- P.S. Это тоже может быть интересно:
visibility
Чтобы скрыть и удалить элемент из разметки, установите свойству display значение none , вместо использования visibility .
Синтаксис
/* Значения */ visibility: visible; visibility: hidden; visibility: collapse; /* Глобальные значения */ visibility: inherit; visibility: initial; visibility: unset;
Свойство visibility указывается в качестве одного из значений ниже.
Значения
Значение по умолчанию, элемент виден.
Элемент не виден (полностью прозрачный, ничего не отображается), но продолжает влиять на шаблон. Потомки элемента могут быть показаны с помощью свойства visibility:visible . Элемент не может получить focus (например, при навигации с помощью tabindex).
* Для строк, столбцов, групп столбцов и групп строк в таблице, которые должны быть удалены (как с помощью display : none применённого к столбцу/строке таблицы). Однако, размер других строк и столбцов должен продолжать вычисляться так, словно скрытые строки/столбцы присутствуют. Это создано для быстрого удаления строк/столбцов из таблицы без дополнительного вычисления ширины и высоты частей таблицы.
- Для XUL элементов размер всегда равен 0, независимо от других стилей, влияющих на размер, хотя отступы продолжают учитываться.
- Для других элементов collapse обрабатывается также, как hidden
Синтаксис
Интерполяция
Значения видимости изменяются между видим и не видим. Интерполяция будет, если одно из начальных или конечных значений будет видимо или нет. Если одно из значений visible , интерполируется как дискретный шаг, где значения временной функции от 0 до 1 для visible и другие значения временной функции (которые происходят только в начале/конце перехода, или как результат функции cubic-bezier() со значениями вне [0, 1]) ближе к конечной точке.
Примеры
Базовый пример
HTML
p class="visible">Первый параграф виден.p> p class="not-visible">Второй параграф не виден.p> p class="visible">Третий параграф также виден. Заметь, второй параграф занимает место.p>
CSS
.visible visibility: visible; > .not-visible visibility: hidden; >
Пример с таблицей
HTML
table> tr> td>1.1td> td class="collapse">1.2td> td>1.3td> tr> tr class="collapse"> td>2.1td> td>2.2td> td>2.3td> tr> tr> td>3.1td> td>3.2td> td>3.3td> tr> table>
CSS
.collapse visibility: collapse; > table border: 1px solid red; > td border: 1px solid gray; >
Соображения доступности
Использование visibility со значением hidden на элементе удалит его из дерева доступности. Это приведёт к тому, что элемент и все его дочерние элементы больше не будут показаны в скринридерах.
Примечания
- Поддержка visibility:collapse отсутствует или частично не работает в некоторых современных браузерах. Во многих случаях может не корректно работать visibility:hidden со столбцами и строками.
- visibility:collapse может изменить шаблон таблицы, если таблица содержит вложенные таблицы, пока visibility:visible не указан явно для вложенной таблицы.
Спецификация
Specification | Status | Comment |
---|---|---|
CSS Flexible Box Layout Module Определение ‘visibility’ в этой спецификации. | Кандидат в рекомендации | Определяет значение collapse применимым к flex элементам |
CSS Box Model Определение ‘visibility’ в этой спецификации. | Кандидат в рекомендации | Без изменений |
CSS Transitions Определение ‘visibility’ в этой спецификации. | Рабочий черновик | Определяет visibility как анимируемое. |
CSS Level 2 (Revision 1) Определение ‘visibility’ в этой спецификации. | Рекомендация | Изначальное определение |
Начальное значение | visible |
---|---|
Применяется к | все элементы |
Наследуется | да |
Обработка значения | как указано |
Animation type | видимость |
Совместимость с браузерами
BCD tables only load in the browser
Found a content problem with this page?
This page was last modified on 13 авг. 2022 г. by MDN contributors.
Your blueprint for a better internet.
Атрибут hidden
Железобетонный способ скрыть элемент в тех случаях, когда не подходят opacity или visibility . В отличие от двух других способов этот применяется прямо в HTML-разметке. Не лучшая практика: влиять на внешний вид страницы через разметку, но иногда именно это и нужно. По сути, это display : none — именно так он описан в браузерных стилях.
Пример
Скопировать ссылку «Пример» Скопировано
Этот текст будет невиден на странице. Хотя элемент в разметке будет!
p hidden> Этот текст будет невиден на странице. Хотя элемент в разметке будет! p>
Как пишется
Скопировать ссылку «Как пишется» Скопировано
Поскольку атрибут hidden глобальный, его можно добавить к абсолютно любому тегу, чтобы скрыть его от глаз пользователя. Просто поставьте его после имени самого тега до закрывающей треугольной скобки. Собственно, как и все прочие атрибуты.
Этот атрибут булевый, у него может быть значение true — элемент спрятан, или false — элемент видим. Но обычно его пишут без значения, что приравнивается к true по умолчанию. Значения могут пригодиться, если вы будете менять их при помощи JavaScript.
Очень важно знать, что тег, спрятанный при помощи атрибута hidden становится невидим не только для пользователя, но и для скринридеров.
По причине того, что тег с этим атрибутом пропадает совсем как от пользователя, так и от скринридеров, стоит использовать этот приём аккуратно, понимая последствия.
Подсказки
Скопировать ссылку «Подсказки» Скопировано
💡 Как и с display : none , такое скрытие нельзя анимировать ☹️
💡 Атрибут пишется в одно слово, без значения, если вы хотите спрятать элемент.
💡 Элемент скрывается от глаз не только пользователя, но и вообще как будто не существует. Его не видят скринридеры, на него нельзя установить ссылку.
💡 Элемент с атрибутом hidden остаётся виден поисковым роботам и будет ими проиндексирован.
На собеседовании
Скопировать ссылку «На собеседовании» Скопировано
Какая разница между hidden , aria — hidden = «true» , role = «presentation» и role = «none» ?
Скопировать ссылку «Какая разница между hidden, aria-hidden=»true», role=»presentation» и role=»none»?» Скопировано
Это вопрос без ответа. Вы можете помочь! Почитайте о том, как контрибьютить в Доку.
Ещё четыре способа скрыть и показать элементы при помощи HTML и CSS
Приквел к этой статье – «Четыре способа заставить элементы исчезнуть (и появиться) при помощи CSS» – был сосредоточен на классических техниках для скрытия элементов на странице; на этот раз используются методы, которые работают в современных браузерах, с некоторыми ограничениями для IE. Используется разметка, которая похожа на разметку из предыдущего примера:
Located deep in Siberia, the village of Oymyakon holds the title of the coldest permanently inhabited place on Earth, tied with Verkhoyansk.
From December to February, the weather in the tiny village (population 500) plummets to -50°F (-45C), with a record low of -90°F (-68C) registered in 1933. At those temperatures, a naked human left outside would freeze to death in under a minute…
body < color:#fff
; background: url(px.png)#333
; line-height:1.4
; font-size:1.1rem
; > figure#oymyakon < float:right
; width:50%
; font-size:0
; > figure#oymyakon img < width:100%
; height:auto
; box-shadow:0 0 12px rgba(0,0,0,.3)
; > figure#oymyakon figcaption < text-align:center
; font-size:1rem
; font-style:italic
; margin-top:1rem
; >
В этой статье я применяю разные техники для скрытия элемента : можно протестировать эти методы в интерактивном примере в начале оригинальной статьи или перейдя по этой ссылке на CodePen.
Масштабирование элемента в 0
Очевидно, если вы делаете что-то бесконечно маленьким, это «что-то» в итоге исчезнет. Стоит отменить, что изначальная область элемента сохранится, потому что действие трансформации по сути похоже на поведение элемента с position: relative ;
Возврат значения scale в значение 1 заставит элемент появиться снова; этот переход также может быть анимирован.
Минусы: Поддерживается во всех современных браузерах, но только начиная с IE9+. Нельзя применять к строчным элементам. Для старых версий браузеров требуются префиксы.
HTML5-атрибут hidden
Хотя визуально он действует так же, как display: none , этот элемент фиксирует состояние элемента
При установке элементу, hidden указывает, что элемент еще не имеет или уже не имеет непосредственного отношения к текущему состоянию страницы.
Атрибут hidden уже используется для таких HTML5-элементов, как details . В отличие от других описанных здесь методов, атрибут hidden скрывает элемент от любых способов представления, включая печать, мобильные и скринридеры. Поддерживается всеми современными браузерами, за исключениями одного.
Минусы: Всё ещё не поддерживается в IE, хотя это легко решается в CSS при помощи селектора по атрибуту:
Нулевой height и overflow:hidden
figure#oymyakon < height:0
; overflow:hidden
; >
Традиционное решение. Фактически «схлопывает» элемент по вертикали и делает его невидимым; работает при условии, что у элемента нет видимой границы. Стоит отметить, что некоторое пространство на странице для скрытого элемента, вероятно, будет «забронировано»: несмотря на то, что у элемента нет высоты, у него всё ещё есть ширина и, возможно, поле, которые могут продолжать влиять на макет страницы.
Минусы: Не применяется к строчным элементам. Значение height не может быть анимировано, хотя max — height может.
Фильтр размытия
Новейший подход, который вообще не будет работать в IE (по крайней мере на данный момент). И всё же blur – интересный вариант, который стоит рассмотреть на будущее.. Достаточное размытие делает элемент полностью невидимым, а при уменьшении значения blur до 0 элемент снова оказывается «в фокусе»
Соображения:
- размытие небольшого текста работает лучше чем изображения
- Размытые изображения могут добавить оставшейся части страницы оттенок цвета, в зависимости от их относительного размера и значения blur .
- Чем выше значение blur , тем больше требуется вычислительных циклов для его достижения; достаточно высокие значения могут существенно загрузить графический процессор, что делает эту технику нецелесообразной для мобильных устройств на данный момент.
- Поддерживается только в последней версии Firefox (35 версия – прим. перев.) (хотя есть возможность использовать SVG в качестве запасного варианта)
- Всё ещё требует браузерных префиксов для Chrome и Safari.
- Как уже было указано, не будет работать ни в каких версиях IE.
С этими и другими методами, рассмотренными в прошлой статье, у вас есть полный набор инструментов для создания элементов, которые появляются и исчезают на странице. Важно понимать, что не существует единственной «правильной» или «лучшей» техники: бывает лишь наиболее подходящий инструмент для конкретной задачи. Это относится и к JavaScript, у которого есть собственные методы для добавления и удаления элементов в DOM.
P.S. Это тоже может быть интересно:
Если вам понравилась статья, поделитесь ей!