видимость
Базовая Широко доступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Свойство visibility CSS отображает или скрывает элемент без изменения макета документа. Свойство также может скрывать строки или столбцы в <table>.
Попробуйте
Чтобы скрыть элемент и удалить его из макета документа, установите свойство display в none вместо использования visibility.
Синтаксис
/* Keyword values */ visibility: visible; visibility: hidden; visibility: collapse; /* Global values */ visibility: inherit; visibility: initial; visibility: revert; visibility: revert-layer; visibility: unset;
Свойство visibility задаётся одним из ключевых значений, перечисленных ниже.
Значения
visible-
Блок элемента отображается.
-
Блок элемента невидим (не отрисовывается), но всё ещё влияет на макет как обычно. Потомки элемента будут видны, если у них
visibilityустановлено вvisible. Элемент не может получить фокус (например, при навигации по индексам табуляции). collapse-
Ключевое слово
collapseимеет разные эффекты для разных элементов:- Для
<table>строк, столбцов, групп столбцов и групп строк, строки или столбцы скрываются, а занимаемое ими пространство удаляется (как если быбыло применено к столбцу/строке таблицы). Однако размер других строк и столбцов всё ещё рассчитывается так, как если бы ячейки в скрытой строке/столбце были присутствуют. Это значение позволяет быстро удалить строку или столбец из таблицы, не заставляя пересчитывать ширину и высоту всей таблицы.display: none - Свёрнутые элементы flex и аннотации ruby скрываются, а занимаемое ими пространство удаляется.
- Для других элементов
collapseобрабатывается так же, какhidden.
- Для
Доступность
Использование значения visibility hidden для элемента удалит его из дерева доступности. Это приведет к тому, что элемент и все его дочерние элементы больше не будут объявляться технологией чтения с экрана.
Интерполяция
При анимации значения visibility интерполируются между видимым и невидимым. Одно из начальных или конечных значений должно быть visible, иначе интерполяция не может произойти. Значение интерполируется как дискретный шаг, где значения функции сглаживания между 0 и 1 отображаются как visible, а другие значения функции сглаживания (которые встречаются только в начале/конце перехода или в результате функций cubic-bezier() со значениями y вне [0, 1]) отображаются как ближайшая конечная точка.
Примечания
- Поддержка
visibility: collapseотсутствует или частично некорректна в некоторых современных браузерах. Может быть неверно обработано какvisibility: hiddenдля элементов, кроме строк и столбцов таблицы. - При применении к строкам таблицы, если таблица содержит ячейки (
<td><tr>элементы), которые охватывают как видимые, так и скрытые строки, ячейка может отображаться неожиданным образом. Если охватывающая ячейка определена в скрытой строке, браузеры не отображают ячейку таблицы, как если бы ячейки в последующих строках были присутствуют сvisibility: collapseприменено. Когда ячейка определена в видимой строке и охватывает скрытую строку, содержимое ячейки не переформатируется, но отображение самой ячейки варьируется в зависимости от браузера. Большинство браузеров уменьшают размер блока ячейки на размер блока скрытой строки. Это означает, что содержимое может быть больше, чем ячейка в направлении размера блока. В зависимости от браузера, переполняющее содержимое либо обрезается, как если быoverflow: hiddenбыло установлено, в то время как содержимое перетекает в последующую строку в других браузерах, как если быoverflow: visibleбыло установлено. В других браузерах ячейка отображается так, как если бы строка не была скрыта, а все остальные ячейки в строке скрыты, как если быvisibility: collapseбыло установлено на отдельных ячейках, а не на самой строке. -
visibility: collapseможет изменить макет таблицы, если таблица содержит вложенные таблицы внутри ячеек, которые скрыты, еслиvisibility: visibleне указано явно для вложенных таблиц.
Формальное определение
| Начальное значение | visible |
|---|---|
| Применимо к | все элементы |
| Наследуется | да |
| Вычисленное значение | как указано |
| Тип анимации | видимость |
Формальный синтаксис
Примеры
Базовый пример
HTML
<p class="visible">The first paragraph is visible.</p> <p class="not-visible">The second paragraph is NOT visible.</p> <p class="visible"> The third paragraph is visible. Notice the second paragraph is still occupying space. </p>
CSS
.visible {
visibility: visible;
}
.not-visible {
visibility: hidden;
}
Пример таблицы
HTML
<table>
<tr>
<td>1.1</td>
<td class="collapse">1.2</td>
<td>1.3</td>
</tr>
<tr class="collapse">
<td>2.1</td>
<td>2.2</td>
<td>2.3</td>
</tr>
<tr>
<td>3.1</td>
<td>3.2</td>
<td>3.3</td>
</tr>
</table>
CSS
.collapse {
visibility: collapse;
}
table {
border: 1px solid red;
}
td {
border: 1px solid gray;
}
Спецификации
| Спецификация |
|---|
| CSS Display Module Level 3 # visibility |
Совместимость браузеров
| Рабочий стол | Мобильный телефон | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
visibility |
1 | 12 | 1 | 4 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
collapse |
12 | 1["Firefox не скрывает границы при скрытии<col> и <colgroup> элементов, если border-collapse: collapse установлено.", "До Firefox 88 collapse не поддерживается для аннотаций ruby."] |
4["Firefox не скрывает границы при скрытии<col> и <colgroup> элементов, если border-collapse: collapse установлено.", "До Firefox 88 collapse не поддерживается для аннотаций ruby."] |
||||||||
hidden |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
visible |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/visibility