основные способы — учебник CSS
В CSS существует несколько способов скрыть элемент. При этом скрытие может быть как полным, так и чисто визуальным. Разберем по порядку каждый вариант.
Скрытие элемента с помощью opacity: 0
Если быть точным, свойство opacity
не скрывает элемент, а лишь определяет его степень прозрачности. Значение 1
означает полную непрозрачность объекта, а значение 0
, соответственно, приводит к полной прозрачности, в результате чего элемент перестает быть виден для посетителя. Последняя часть предложения важна: элемент будет скрыт лишь визуально, но при этом он будет занимать свое место на странице, влиять на положение других элементов, и с ним можно будет взаимодействовать (к примеру, он станет непрозрачным при наведении мыши, если определить соответствующий стиль для состояния :hover
). Скрин-ридеры также будут видеть данный элемент.
Преимуществом свойства opacity
является его совместимость с transition
. Это значит, что можно заставить элемент изменять свою прозрачность плавно, а не рывком. Тем самым можно создать красивое появление элемента.
В отличие от свойства прозрачности, свойство visibility
специально предназначено для визуального скрытия элементов. Значение hidden
скрывает элемент, а значение visible
— показывает. Как и в случае с opacity
, элемент продолжает занимать свое место на странице, однако взаимодействовать с элементом, скрытым с помощью visibility: hidden
, нельзя. Скрин-ридеры не видят такой элемент.
Свойство visibility
не реагирует на свойство transition
, а это означает, что изменение значения с hidden
на visible
(либо наоборот) будет происходить мгновенно.
На практике для временного скрытия элементов часто используется два свойства сразу — visibility
и opacity
(в одном из практических уроков мы уже показывали этот прием). При этом убивается сразу несколько зайцев: с помощью visibility
элемент скрывается как положено (в т. ч. от скрин-ридеров), а с помощью opacity
обеспечивается плавное появление элемента в необходимый момент.
Скрытие элемента с помощью display: none
Свойство display
со значением none стоит использовать в том случае, если вам нужно полностью скрыть элемент. Такой объект (и все его дочерние элементы) не только перестает быть виден посетителю и скрин-ридеру, но и не занимает места на странице и не влияет на расположение других элементов. Всё выглядит так, словно элемента и нет. Естественно, взаимодействовать с элементом, который скрыт данным образом, тоже невозможно.
Как и в случае со свойством visibility
, свойство display
не поддерживает плавные переходы transition
.
Скрытие элемента с помощью position: absolute
Еще один способ скрыть элемент исключительно визуально — задать ему абсолютное позиционирование, выдернув из общего потока документа, и затем переместить далеко за пределы видимой области путем установки больших отрицательных значений для свойств top
и left
. Например:
div { position: absolute; top: -9999px; left: -9999px; }
Логично предположить, что спрятать таким образом элемент от скрин-ридеров нельзя, да и в целом не рекомендуется применять этот вариант скрытия, поскольку есть более надежные и правильные способы, описанные выше. Однако в некоторых нетривиальных ситуациях веб-разработчики всё же используют его.
Далее в учебнике: CSS Grid Layout — будущее уже здесь.
CSS: Как скрыть элемент HTML
- Блочные и строчные элементы
- Скрытие элементов
CSS свойства display
и visibility
позволяют скрывать элементы (делать их невидимыми) и полностью убирать элементы из HTML разметки (в этом случае браузер игнорирует элемент, при построении разметки страницы).
Блочные и строчные элементы
Большинство элементов в CSS классифицируются как блочные (block
) или строчные (inline
), и это влияет на то, как эти элементы будут отображаться по умолчанию на веб-странице.
Важно знать к какому типу относится элемент, так как не все CSS свойства работают с обоими типами элементов. Некоторые CSS свойства работают только с блочными элементами, другие только со строчными.
CSS свойство display позволяет переопределить тип элемента, заданный по умолчанию. Что в свою очередь, позволят по необходимости изменять тип элемента со строчного на блочный или с блочного на строчный.
Строчные элементы
Элемент определённый как строчный, будет занимать только необходимое количество места на веб-странице (занимаемое место зависит от содержимого строчного элемента), кроме этого такие элементы:
- игнорируют верхний и нижний внешний отступ, если он применен
- игнорируют свойства height и width
- могут быть выровнены с помощью свойства vertical-align
Строчный элемент можно сделать блочным если установить для свойства
значение block
или если сделать элемент плавающим. Плавающие элементы автоматически становятся блочными, то есть появляется возможность регулировать размер элемента и задавать внешние отступы.
Блочные элементы
Блочные элементы всегда начинаются с новой строки и занимают всю доступную ширину, если ширина для элемента не была установлена. Кроме этого блочные элементы:
- могут иметь внешние и внутренние отступы
- растягиваются по высоте под свое содержимое
- не выравниваются свойством vertical-align
Строчно-блочные элементы
Строчно-блочное отображение элемента задается значением
. В основном это способ сделать элемент строчным, но сохранить его «блочные» возможности: изменение высоты и ширины элемента, регулирование размеров внешних и внутренних отступов.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Название документа</title> <style> p { display: inline; } span { display: block; } li { display: inline-block; } </style> </head> <body> <p>Абзац 1.</p><p>абзац 2.</p> <span>Практическое применение свойства display мы рассмотрим</span> <span>в главе "CSS меню"</span> <ul> <li>Пункт 1</li> <li>Пункт 2</li> <li>Пункт 3</li> </ul> </body> </html>
Попробовать »
Примечание: значение inline-block
не поддерживается в IE7 и более ранних версиях.
Скрытие элементов
В CSS есть возможность временного или постоянного скрытия некоторых элементов веб-страницы. Стоит обратить внимание на то, что скрытые элементы не будут отображаться только на веб-странице, но их можно будет посмотреть в исходном коде HTML-документа. Для скрытия элементов используется или свойство
со значением none
или свойство visibility со значением hidden
:
- display: none; — указание браузеру скрыть элемент, убрав его из общего потока элементов. В этом случае элемент, расположенный после скрытого элемента, будет смещаться вверх, занимая место скрытого элемента.
- visibility: hidden; — указание браузеру скрыть элемент, зарезервировав под него место на веб-странице. В этом случае браузер только скрывает элемент, не удаляя его из общего потока, поэтому на месте скрытого элемента останется пустое пространство, совпадающее по размеру с размером скрытого элемента.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Название документа</title> <style> h2.hidden { visibility: hidden; } h3.none { display: none; } </style> </head> <body> <h2>Это видимый заголовок</h2> <h2>Скрытый заголовок</h2> <h3>Скрытый заголовок2</h3> <p>Элемент, который скрыт с помощью свойства visibility, все равно занимает пространство там, где он должен находиться в отличие от элемента скрытого с помощью свойства display, который убран из общего потока страницы.</p> </body> </html>
Попробовать »
Hide elements in HTML using display property
7 |
Скрыть HTML-элемент — javatpoint
следующий → ← предыдущая Вы можете скрыть элемент, используя логический атрибут hidden с элементом. Когда вы указываете скрытый атрибут в файле HTML, то браузер не будет отображать тот элемент, который указан с этим атрибутом. СинтаксисПримеры: Следующие примеры приведены, чтобы легко понять, как использовать скрытый атрибут с различными элементами или тегами: Пример 1: В этом примере используется скрытый атрибут с тегом абзаца. <голова> <название> Первый пример скрытого атрибута название> голова> <тело> <центр> JavaTpointцентр>Этот абзац должен быть скрыт. тело> Протестируйте сейчасВывод: Пример 2: В этом примере мы использовали скрытый атрибут с двумя входными тегами. Эти поля ввода не будут отображаться на веб-странице при выполнении следующей программы. <голова> <название> Пример скрытого атрибута во входном теге название> <стиль> /* Тело следующего селектора тегов использует свойства font-family и background-color для тела страницы*/ тело { семейство шрифтов: Calibri, Helvetica, без засечек; цвет фона: розовый; } /* В следующем классе контейнера используется отступ для создания пространства вокруг него, а также используется цвет фона для указания светло-голубого цвета в качестве фона */ . |