Атрибут hidden тега <th>
Описание
Атрибут hidden в теге <th> скрывает заголовочную ячейку таблицы от отображения в браузере. Это булевый атрибут, который полностью удаляет элемент из визуального потока документа.
<table border="1">
<tr>
<th hidden>Скрытый заголовок</th>
<th>Видимый заголовок</th>
</tr>
<tr>
<td hidden>Скрытые данные</td>
<td>Видимые данные</td>
</tr>
</table>
Особенности работы:
- Скрывает элемент и его содержимое
- Эквивалентен CSS:
display: none - Не удаляет элемент из DOM-дерева
- Может быть переопределён CSS с более высоким приоритетом
Разница между hidden и другими методами скрытия:
| Метод | Видимость | Занимает место | Доступность |
|---|---|---|---|
hidden атрибут |
Не виден | Нет | Скрыт для скринридеров |
visibility: hidden |
Не виден | Да | Скрыт для скринридеров |
opacity: 0 |
Не виден | Да | Доступен для скринридеров |
Рекомендации:
- Используйте для временного скрытия элементов
- Для постоянного удаления лучше удалять элемент из DOM
- Сочетайте с ARIA-атрибутами при динамическом управлении
- Проверяйте доступность в различных сценариях
Пример с JavaScript:
<table border="1">
<tr>
<th id="toggle-header">Переключаемый заголовок</th>
<th>Статичный заголовок</th>
</tr>
</table>
<button onclick="toggleHeader()">Переключить видимость</button>
<script>
function toggleHeader() {
const header = document.getElementById('toggle-header');
header.hidden = !header.hidden;
}
</script>
Ограничения:
- Не подходит для чувствительной информации (можно увидеть в исходном коде)
- Может нарушать структуру таблицы при неправильном использовании
- Некоторые старые браузеры требуют CSS-переопределения
- Сложности с анимацией появления/скрытия
Пример с CSS-переопределением:
<style>
/* Для старых браузеров */
th[hidden] {
display: none !important;
}
/* Специальные стили для скрытых элементов */
th[hidden] + th {
border-left: none;
}
</style>
<table border="1">
<tr>
<th hidden>Скрытый</th>
<th>Видимый</th>
</tr>
</table>
Примечание: Для сложных сценариев скрытия/отображения:
- Используйте CSS-классы для большего контроля
- Рассмотрите анимации с
transitionиopacity - Для таблиц - динамическое создание/удаление элементов