dr.Brain

doctor Brain

мир глазами веб-разработчика

CSS: как корректно скрыть элемент

скрываем CSS-элемент, сохраняя доступность для скринридеров и поисковых роботов

dr.Brain

время чтения 2 мин.

Как корректно удалить со страницы элемент, не оказывая отрицательного влияния на параметры поисковой оптимизации (SEO) и не нарушая взимодействие этого элемента с программами-скринридерами.

Пожалуй, приведенный ниже код, будет соответствовать таким условиям:

.screen-reader-text {
  position: absolute;
  top: -9999px;
  left: -9999px;
}

Теперь, присовоив элементу класс screen-reader-text, мы не только выведем его из потока, но и сможем не опасаться эффекта “переполнения при скроллинге”.

Такой подход, несомненно, лучше, чем приемы с display: none; или даже visibility: hidden;, которые порой применяются в случаях, когда есть необходимость скрыть блок визуально, сохранив его доступность для SEO и скринридеров.

Snook предлагает решение, которое обеспечивает еще большую надежность в различных ситуациях:

.element-invisible {
  position: absolute !important;
  height: 1px; width: 1px; 
  overflow: hidden;
  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
  clip: rect(1px, 1px, 1px, 1px);
}

WordPress, в свою очередь, предоставляет свое решение - screen-reader-text, учитывающее отображение элемента при попадании в фокус:

.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: #eee;
  clip: auto !important;
  clip-path: none;
  color: #444;
  display: block;
  font-size: 1em;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000; /* Above WP toolbar. */
}

Надеюсь, какой-то из предложенных вариантов Вам пригодится.


Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.