Как скрыть полосу прокрутки (скроллбар) с помощью CSS

Источник: «How to Hide Scrollbar Using CSS?»
С помощью новых CSS атрибутов полосу прокрутки можно стилизовать и скрывать, не влияя на возможность пользователя прокручивать страницу. Мы покажем, как скрыть полосу прокрутки в большинстве браузеров с помощью CSS.

Введение

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

Свойства CSS для скрытия полос прокрутки

Скрыть полосы прокрутки на конкретных элементах

Продемонстрируем, как скрыть полосы прокрутки с помощью CSS атрибутов, упомянутых выше.

Ниже приведён пример codepen, демонстрирующий, как скрыть полосу прокрутки элемента, не влияя на способность к прокрутке.

В примере используется псевдоселектор ::-webkit-scrollbar, чтобы скрыть полосу прокрутки на элементе с классом scroll-container, сохранив функциональность.

.scroll-container::-webkit-scrollbar {
display: none;
}

See the Pen

Другой пример — использование свойства overflow: hidden, скрывающего полосу прокрутки. Однако, как продемонстрировано на codepen, это влияет на способность элемента к прокрутке.

Свойство overflow: hidden применяется к элементу с классом scroll-container с max-height: 350px.

.scroll-container {
background: white;
padding: 2em;
margin: auto;
max-width: 450px;
max-height: 350px;
/* Это скрывает полосу прокрутки на элементе и влияет на его функцию прокрутки */
overflow: hidden;
}

See the Pen

Свойства CSS скрывающие полосы прокрутки браузера

Скрытие полосы прокрутки в браузерах Webkit, таких, как Chrome, Safari, Edge и Firefox.

Продемонстрируем, как скрыть полосы прокрутки браузера с помощью CSS свойств, упомянутых выше.

Пример, приведённый ниже, демонстрирует, как скрыть полосу прокрутки браузера, не нарушая функциональности.

В этом примере используется псевдоселектор ::-webkit-scrollbar, чтобы скрыть полосу прокрутки на элементе body, сохранив при этом функциональность.

body::-webkit-scrollbar {
display: none;
}

See the Pen

Другой вариант — скрыть полосу прокрутки с помощью свойства CSS: overflow: hidden. Однако это влияет на возможность прокрутки браузера (что нежелательно) на этой странице, как показано на codepen.

Свойство overflow: hidden применяется к элементу body.

body {
border: 10px solid orange;
margin: auto;
max-width: 600px;
font: 1em / 1.4 sans-serif;
padding: 2em;
display: grid;
place-items: center;
background: white;
/* Это скрывает полосу прокрутки браузера, однако влияет на функцию прокрутки */
overflow: hidden;
}

See the Pen

Заключение

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

Дополнительные материалы

Предыдущая Статья

Операции конкатенации строк в PHP

Следующая Статья

Создание веб-компонента с нуля