Скрытие покажет: html и css как инструменты отображения контента

с

Некоторые элементы страницы необходимо скрывать. Это происходит по разным причинам, однако в особенности скрытие актуально для адаптации веб-ресурса к разным платформам: ПК и мобильным устройствам.

При этом скрытые элементы могут быть не в одном состоянии. Вариантов 3: элемент может быть невидим полностью и, вообще, удалён из потока документов; элемент может быть невидим для пользователя, однако он будет находиться в документе и ассистивные технологии смогут его считать; элемент будет открыт для пользователя, но ассистивные технологии не смогут его считывать.

Всё это можно сделать посредством HTML (язык разметки) и CSS (язык описания внешнего вида документа, в случае данной статьи — страницы) прямо в админке.

Атрибут hidden (убираем полностью)

Скрывает элементы при условии, что их видимость не включена вручную посредством CSS. Вообще, если говорить о последнем, атрибут Hidden работает аналогично CSS-«способу» display: none;

Предположим, какой-то большой заголовок на веб-странице должен отображаться только тогда, когда ширина области отображения элемента больше 500 пкс. В таком случае в HTML пишем:
<h1 hidden>Большой заголовок</h1>

CSS:
@media (min-width: 500px) {
h1 {
display: none;
}
#hidden {
display: block;
}
}

Теперь по поводу display (априори это свойство есть у всего, что прописано коде страницы), после того, как вы укажете его значение как none: невидимыми станут и все потомки выбранного элемента. При этом место скрываемого займёт другой, следующий за ним по цепочке.

Атрибут aria-hidden (убираем частично)

Скрывает элемент и делает его полностью недоступным для считывающего программного обеспечения, что позволяет программам работать со страницами быстрее. В то же время указанный элемент остаётся видим для пользователя.

Прописывается в HTML следующим образом:
<span class=»Здесь какой-нибудь строчной элемент документа» aria-hidden=»true»></span>

Чаще всего данный атрибут применяют, чтобы спрятать от программ считывания дублируемый текст, свёрнутые или перемещённые «за экран» элементы, а также чтобы убрать декоративную графику. При этом действие скрытие распространяется только на программы, не на пользователей ресурса.

Свойство opacity (убираем, но не заметаем следы)

Со значением 0 прячет от пользователя (но только от него) элемент со всеми вложениями. При этом на странице вместо скрытого элемента образуется пробел. Данное свойство ненаследуемое.

CSS:
h1 {
opacity: 0;
}

Свойство visibility (убираем выборочно 2)

Аналог предыдущего. На странице так же остаётся пробел, однако на поток данное изменение не влияет. Здесь важно помнить, если данное свойство применяется к родительскому элементу, то скрыты будут и все потомственные. Чтобы избежать этого для конкретного случая, пропишите тому, что необходимо оставить, visibility: visible.

HTML:
<article>
<h1>Большой заголовок</h1>
<style contenteditable=»true»>
h1 { color: #3333dd; }
</style>
<img src=»url картинки»>
<p>Текст статьи.</p>
</article>

CSS:
article {
visibility: hidden;
}

img {
visibility: visible;
}

В таком случае на странице будет видна только картинка (потомственный элемент родительского — статьи, включающего заголовок, иллюстрацию и текст).

Позиционирование в слепой зоне (убираем, но не очень тщательно)

Спрятать элемент можно, переписав его позицию. Иными словами, поместив необходимую часть наполнения страницы за пределы её видимости или исправив значения размера на 0.

CSS:
img {
position: right;
top: -100%;
}

Указанное будет перенесено из области видимости на новое прописанное значение, таким образом он будет скрыт из поля зрения пользователя. Однако если последний использует клавиатуру и доберётся до элемента, последний станет видим.

CSS:
img {
position: right;
top: 0;
}

Свойство clip-path (убираем оригинально)

Скрывает элемент частично. Для определения точных значений, рекомендуется пользоваться программой clippy. Он значительно ускорит и упростит вашу работу.

CSS:
img {
clip-path: inset(0 0, 0 0, 0 0, 0 0);
}

В данном случае 0 — это значение, при котором кусок элемента не будет видим для пользователя. В clippy вы определяете нужные значения (они будут написаны внизу экрана цветным шрифтом), которые затем копируете из программы и вставляете в CSS вашей страницы. Так же данный инструмент позволяет менять форму объекта (прописывается в коде вместо inset). Например, круг (circle), треугольник (triangle) и т. д.

И ещё кое-что

Скрывать надписи от пользователя можно посредством изменения их параметров, а именно кегля и цвета шрифта (в случае текста). При этом технически элемент будет присутствовать и взаимодействовать с программным обеспечением для считывания.

HTML:
<button>
<svg width=»50″ height=»50″ viewbox=»0 0 50 50″>
</svg>
<span>Текст Кнопки</span>
</button>

CSS:
.button span {
color: transparent;
font-size: 0;
}

Таким образом исчезнет только надпись (сама кнопка останется) и лишь визуально (технически текст будет находиться на странице).