Это первый день моего участия в ноябрьском испытании обновлений, подробности о мероприятии:Вызов последнего обновления 2021 г..
Всем привет, я Чжан Сансуй🤣, фронтенд правовой системы⚖️. Люблю делиться🖋️, люблю Bingbing🧊🧊.
Добро пожаловать, друзья, чтобы добавить меня в WeChat: maomaoibingbing, пригласите вас в группу, обсудите вместе и с нетерпением жду возможности расти вместе со всеми🥂.
предисловие
Стиль полосы прокрутки в браузере должен быть всем знаком, и его стиль не годится. Может быть, многие друзья еще не знают, стиль этого материала также можно изменить (поддерживаются только некоторые современные браузеры), на этот раз я покажу вам, как его использовать.CSS
Измените его стиль.
Сначала распознайте полосу прокрутки
Прежде всего, давайте кратко рассмотрим, из каких частей состоит полоса прокрутки:
Когда есть полосы прокрутки как в горизонтальном, так и в вертикальном направлениях, также будет пересечение (см. рисунок ниже), но поскольку полосы прокрутки не могут отображаться горизонтально в общей веб-разработке (поскольку это влияет на внешний вид), частота этот квадратик оказывается не слишком высоким. На следующем рисунке показано пересечение, когда есть как вертикальные полосы прокрутки, так и горизонтальные полосы прокрутки:
2. Решения
1. Псевдоклассы CSS
В настоящее время мы можем пройтиCSS伪类
Для реализации изменения стиля полосы прокрутки используются следующие псевдоклассы CSS для изменения стиля полосы прокрутки:
- ::-webkit-scrollbar — вся полоса прокрутки
- ::-webkit-scrollbar-button — кнопка на полосе прокрутки (стрелки вверх и вниз)
- ::-webkit-scrollbar-thumb — Полоса прокрутки на полосе прокрутки
- ::-webkit-scrollbar-track — Отслеживание полосы прокрутки
- ::-webkit-scrollbar-track-piece — Отслеживание части полосы прокрутки без ползунка
- ::-webkit-scrollbar-corner — Угол, который пересекается, когда есть как вертикальная полоса прокрутки, так и горизонтальная полоса прокрутки
- ::-webkit-resizer — частичные стили для углов определенных элементов (например, перетаскиваемые кнопки для текстового поля)
прикреплен здесьMDNПортал документов:developer.Mozilla.org/this-cn/docs/…
2. Проблемы совместимости
Конечно, у этого решения все еще есть определенные проблемы с совместимостью, и оно поддерживает толькоWebKitбраузеры (например, Google Chrome, Apple Safari). На самом деле, когда вы видите-webkit-
префикс, чтобы понять, что этоCSS3
середина私有属性前缀
, конкретный префикс предназначен для адаптации к конкретному ядру браузера. мы идемCan I useПроверьте его совместимость:
Как мы видим из приведенной выше картинки, совместимость не очень хорошая, но нам не нужно слишком беспокоиться, в конце концов, мы всего лишь пользователи правил, а не создатели.
3. Тест
1. Вся полоса прокрутки
Мы проверяем один атрибут одним атрибутом, сначала используем::-webkit-scrollbar
. Сначала измените его ширину и проверьте эффект:
/* 整个滚动条 */
/* 宽高分别对应纵向滚动条和横向滚动条的宽度 */
::-webkit-scrollbar {
width: 50px;
}
Мы видим, что полосы прокрутки «исчезают», но страницу все еще можно прокручивать с помощью перетаскивания мышью. Давайте добавим к нему эффект Kangkang фонового цвета:
/* 整个滚动条 */
::-webkit-scrollbar {
width: 50px;
background-color: skyblue;
}
После увеличения цвета фона снова "появляется" полоса прокрутки. Комбинируя код только что, мы можем легко увидеть, что: set::-webkit-scrollbar
Свойство сделает недействительным стиль полосы прокрутки по умолчанию. В таком случае мы должны использовать его в сочетании с другими свойствами.
2. Кнопки со стрелками на полосе прокрутки
давайте использовать это::-webkit-scrollbar-button
свойство, обнаружил, что это свойство не имеет никакого эффекта при использовании отдельно:
/* 滚动条上的箭头按钮 */
::-webkit-scrollbar-button {
background-color: slateblue;
}
Итак, добавим предыдущий код и попробуем еще раз:
Мы видим, что цвет фона кнопки положения двух стрелок изменился. Кажется, что другие свойства псевдокласса полосы прокрутки должны соответствовать::-webkit-scrollbar
вступить в силу.
3. Ползунок прокрутки на полосе прокрутки
мы используем::-webkit-scrollbar-thumb
чтобы изменить стиль ползунка в полосе прокрутки:
/* 整个滚动条 */
::-webkit-scrollbar {
width: 50px;
background-color: skyblue;
}
/* 滚动条上的滚动滑块 */
::-webkit-scrollbar-thumb {
background-color: orange;
}
4. Полоса прокрутки
использовать::-webkit-scrollbar-track
Свойство изменяет стиль дорожки полосы прокрутки:
/* 整个滚动条 */
::-webkit-scrollbar {
width: 50px;
background-color: skyblue;
}
/* 滚动条上的滚动滑块 */
::-webkit-scrollbar-thumb {
background-color: orange;
}
/* 滚动条轨道 */
::-webkit-scrollbar-track {
background-color: hotpink;
}
Благодаря визуализации мы можем обнаружить, что установленный цвет фона полосы прокрутки перекрывает установленный цвет фона (небесно-голубой) всей полосы прокрутки. Можно ли добиться эффекта вложения двух цветов фона внутри и снаружи? В настоящее время было предпринято несколько безрезультатных попыток, и мы можем только временно отказаться. Ниже приведен код для эффекта вложенного цвета фона, который имеет не было реализовано после тестирования:
/* 未实现背景色嵌套效果代码 */
::-webkit-scrollbar {
/* 无法通过 padding 实现 */
padding: 4px;
width: 50px;
background-color: skyblue;
box-sizing: border-box;
}
::-webkit-scrollbar-track {
/* 无法通过调整宽度实现 */
width: 80%;
background-color: hotpink;
}
В этом случае, если нам нужно настроить цвет фона полосы прокрутки, нам нужно только::-webkit-scrollbar
и::-webkit-scrollbar-track
Вы можете выбрать один из них.
5. Трековая часть полосы прокрутки без ползунка
На этот раз мы установили оба::-webkit-scrollbar-track
и::-webkit-scrollbar-track-piece
Чтобы увидеть эффект:
/* 整个滚动条 */
::-webkit-scrollbar {
width: 50px;
}
/* 滚动条上的滚动滑块 */
::-webkit-scrollbar-thumb {
background-color: orange;
}
/* 滚动条轨道 */
::-webkit-scrollbar-track {
background-color: hotpink;
}
/* 滚动条没有滑块的轨道部分 */
::-webkit-scrollbar-track-piece {
background-color: purple;
}
Приведенный выше код работает, как и ожидалось, но если я установлю прозрачный цвет фона (прозрачный) для ползунка, все будетpurple
цвет, также не отображается в нижней части ползунка для визуализацииpink
цвет. Итак, если вы хотите изменить цвет фона, выберите дорожку, чтобы изменить его.
6. Резюме теста
- настраивать
::-webkit-scrollbar
Свойство сделает недействительным стиль полосы прокрутки по умолчанию. - Другие частные свойства, которые изменяют стиль полосы прокрутки, должны быть согласованы
::-webkit-scrollbar
использование собственности - Если вы хотите установить цвет фона полосы прокрутки,
::-webkit-scrollbar
,::-webkit-scrollbar-track
,::-webkit-scrollbar-track-piece
Вы можете установить одно из трех свойств.
В-четвертых, начните меняться
1. Полоса прокрутки сплошного цвета
После изучения модификации полосы прокруткиCSS
После свойств можно наконец приступить к строительству, давайте сначала сымитируемElementСтиль полосы прокрутки в , измените полосу прокрутки сплошного цвета:
/* 整个滚动条 */
::-webkit-scrollbar {
/* 对应纵向滚动条的宽度 */
width: 10px;
/* 对应横向滚动条的宽度 */
height: 10px;
}
/* 滚动条上的滚动滑块 */
::-webkit-scrollbar-thumb {
background-color: #49b1f5;
border-radius: 32px;
}
/* 滚动条轨道 */
::-webkit-scrollbar-track {
background-color: #dbeffd;
border-radius: 32px;
}
Эффект неплохой, намного лучше, чем стиль по умолчанию. Здесь используется синий цвет В реальной разработке цвет темы проекта может использоваться в качестве эталона цвета для полосы прокрутки.
2. Полоса прокрутки шаблона
мы можем использоватьbackground-image
Этот атрибут используется для достижения эффекта шаблона полосы прокрутки (эффект здесь не оригинальный), непосредственно в коде:
/* 整个滚动条 */
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
/* 滚动条上的滚动滑块 */
::-webkit-scrollbar-thumb {
background-color: #49b1f5;
/* 关键代码 */
background-image: -webkit-linear-gradient(45deg,
rgba(255, 255, 255, 0.4) 25%,
transparent 25%,
transparent 50%,
rgba(255, 255, 255, 0.4) 50%,
rgba(255, 255, 255, 0.4) 75%,
transparent 75%,
transparent);
border-radius: 32px;
}
/* 滚动条轨道 */
::-webkit-scrollbar-track {
background-color: #dbeffd;
border-radius: 32px;
}
Я чувствую, эффект отличный (при условии, что люди, которые любят навороты), сердцебиение не так хорошо, как действие, поторопитесьCopyСойди и пощади!