В первой части нашей статьи мы рассказали вам, что такое горизонтальная прокрутка, а также поделились советами по ее использованию.
В этой части статьи мы продолжим делиться с вами лучшими советами по использованию горизонтальной прокрутки, а также научимся создавать такую прокрутку с помощью пользовательского HTML и CSS.
Даже если вашей странице подходит горизонтальная прокрутка, мы рекомендуем предоставить пользователям альтернативный метод прокрутки контента, например, кнопку со стрелками.
У пользователей на мобильных устройствах меньше проблем с перелистыванием в сторону, поэтому кнопки на мобильных сайтах не нужны. Тем не менее, основная ориентация прокрутки должна оставаться вертикальной на устройствах с сенсорным экраном:
Горизонтальные полосы прокрутки должны выглядеть и функционировать так же, как их вертикальные аналоги — это необходимо для единообразия дизайна. Избегайте пользовательских стилей для полос прокрутки — они не должны отвлекать внимание.
В дополнение к индикаторам кнопок, таким как стрелки, вы можете настроить скроллинг таким образом, чтобы горизонтальная полоса появлялась при наведении курсора мыши.
Вы также можете отобразить кусочек скрытого содержимого в окне прокрутки. На сайте Patagonia по бокам окна расположены скрытые части изображения — таким образом пользователи сделают вывод, что эту область можно скроллить.
Еще один доступный вариант сделать горизонтальную прокрутку очевидной — разместить текст «Прокрутите, чтобы узнать больше» на веб-странице.
Когда элемент HTML, например, <div> содержит содержимое, которое выходит за границы — это называется переполнением. Чтобы включить горизонтальную прокрутку, можно использовать свойство CSS overflow-x .
Если мы присвоим значение scroll свойству overflow-x элемента контейнера, браузер скроет выходящий за пределы горизонтальный контент и сделает его доступным с помощью горизонтальной прокрутки.
Чтобы это работало, необходимо указать ширину элемента контейнера, а также дочернего элемента в контейнере.
Рассмотрим этот процесс более детально:
Для примера создадим элемент-контейнер <div> шириной 500px. Внутри этого контейнера <div> находится дочерний элемент <p> с установленной шириной 1000px. Поскольку ширина <p> превышает ширину <div>, текст выходит за пределы контейнера справа.
Ниже код HTML для нашего примера:
<!DOCTYPE html>
<html>
</head>
<body>
<div>
<p> (Your text goes here. Also, you can place other elements within this parent div. </p>
</div>
</body>
</html>
Установка свойства overflow-x отображает внутри контейнера <div> полосу прокрутки.
Ниже код CSS для нашего примера:
div {
background-color: lightblue;
border: 1px solid black;
height: 100px;
width: 500px;
overflow-x: scroll;
}
p {
width: 1000px;
margin: 10px;
}
Если вы не установите ширину дочернего элемента в его родительском <div>, то содержимое дочернего элемента будет перенесено на следующую строку без переполнения.
Вы также можете установить для свойства overflow-x значение hidden, что предотвратит перенос дочернего содержимого внутри его контейнера, а также выключит боковую прокрутку.
div { overflow-x: hidden; }
Вы также можете установить ширину дочерних элементов на 100%. Это перенесет дочернее содержимое на следующую строку без обрезания краев контейнера
p { width: 100%; }
Источник: hubspot.com
Я даю согласие OOO «ЭсБилдер» (далее «BINN») на обработку моих персональных данных в соответствии со статьями 6, 9, 10, 18 Федерального закона от 27 июля 2006 года № 152-ФЗ «О персональных данных», указанных в онлайн-форме и/или предоставленных мною с целью:
Способы обработки персональных данных могут быть любыми, включая сбор, систематизацию, накопление, хранение, уточнение, обновление, изменение, воспроизведение, обезличивание, блокирование и уничтожение.
Настоящее согласие применяется в отношении обработки следующих данных: имя, номер телефона, адрес электронной почты (E-mail).
Настоящее согласие предоставляется сроком на пять лет. По истечении указанного срока действие согласия считается продленным на каждые следующие пять лет при отсутствии сведений о его отзыве.
Согласие может быть отозвано мною в любой момент путем направления в BINN подписанного мною письменного заявления.