CSS: как корректно скрыть элемент
скрываем CSS-элемент, сохраняя доступность для скринридеров и поисковых роботов
Как корректно удалить со страницы элемент, не оказывая отрицательного влияния на параметры поисковой оптимизации (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. */
}
Надеюсь, какой-то из предложенных вариантов Вам пригодится.
Спасибо за внимание.