通过-webkit-scrollbar
自定义浏览器滚动条,支持webkit的浏览器可正常显示(如chrome,safari,QQ浏览器,360极速等)。
很惊讶firefox还没有使用webkit
内核,可能切换的成本太高吧。另外firefox暂时也不允许自定义滚动条~
-webkit-scrollbar
-webkit-scrollbar
由7个伪元素组成,共同构成一个滚动条
先通过一张图看一下,滚动条的各个部分
::-webkit-scrollbar
整个滚动条的背景::-webkit-scrollbar-button
滚动条上方或下方的按钮,单击可上下滚动(横向滚动条单击可左右滚动)::-webkit-scrollbar-track
滚动条轨道::-webkit-scrollbar-track-piece
滚动条没有滑块的轨道部分::-webkit-scrollbar-thumb
滚动条上的滚动滑块::-webkit-scrollbar-corner
当同时有垂直滚动条和水平滚动条时交汇的部分.::-webkit-resizer
某些元素的corner部分的部分样式(例:textarea的可拖动按钮).https://www.caniuse.com/#search=scrollbar
本站的实现代码,是不是很简单?
/* scrollbar */
html::-webkit-scrollbar {
width: 20px;
height: 20px;
}
html::-webkit-scrollbar-thumb {
background: -webkit-gradient(
linear,
left top,
left bottom,
from(#ddd),
to(#42b8dd)
);
background: linear-gradient(to bottom, #ddd, #42b8dd);
border-radius: 20px;
/* -webkit-box-shadow: inset 2px 2px 2px rgba(255, 255, 255, 0.25),
inset -2px -2px 2px rgba(0, 0, 0, 0.25); */
/* box-shadow: inset 2px 2px 2px rgba(255, 255, 255, 0.25),
inset -2px -2px 2px rgba(0, 0, 0, 0.25); */
}
html::-webkit-scrollbar-track {
background: #ddd;
}
https://codepen.io/akinjide/pen/BpggrZ
:horizontal
//horizontal伪类适用于任何水平方向上的滚动条
:vertical
//vertical伪类适用于任何垂直方向的滚动条
:decrement
//decrement伪类适用于按钮和轨道碎片。表示递减的按钮或轨道碎片,例如可以使区域向上或者向右移动的区域和按钮
:increment
//increment伪类适用于按钮和轨道碎片。表示递增的按钮或轨道碎片,例如可以使区域向下或者向左移动的区域和按钮
:start
//start伪类适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的前面
:end
//end伪类适用于按钮和轨道碎片。表示对象(按钮 轨道碎片)是否放在滑块的后面
:double-button
//double-button伪类适用于按钮和轨道碎片。判断轨道结束的位置是否是一对按钮。也就是轨道碎片紧挨着一对在一起的按钮。
:single-button
//single-button伪类适用于按钮和轨道碎片。判断轨道结束的位置是否是一个按钮。也就是轨道碎片紧挨着一个单独的按钮。
:no-button
no-button伪类表示轨道结束的位置没有按钮。
:corner-present
//corner-present伪类表示滚动条的角落是否存在。
:window-inactive
//适用于所有滚动条,表示包含滚动条的区域,焦点不在该窗口的时候。
::-webkit-scrollbar-track-piece:start {
/*滚动条上半边或左半边*/
}
::-webkit-scrollbar-thumb:window-inactive {
/*当焦点不在当前区域滑块的状态*/
}
::-webkit-scrollbar-button:horizontal:decrement:hover {
/*当鼠标在水平滚动条下面的按钮上的状态*/
}
https://developer.mozilla.org/zh-CN/docs/Web/CSS/::-webkit-scrollbar
https://scotch.io/tutorials/customize-the-browsers-scrollbar-with-css
https://blog.csdn.net/byc233518/article/details/78469547
提到Box-sizing,先前的一篇文章也提到过,其实在布局的时候很好用,可以省去很多多余的代码,至于兼容性,目前还只能在移动端应用多,因为它是CSS3的属性。大家看几个例子,应该就一目了然了。
通过 media query 进行 CSS 的 hack。在 IE 中它们可以识别出这些特殊的符号 \0,\, 以及 \9,然后结合 media query 可以更好进行样式的区分
通过-webkit-scrollbar自定义浏览器滚动条,支持webkit的浏览器可正常显示(如chrome,safari,QQ浏览器,360极速等)
记录下响应式布局单位(视窗单位:viewport units)的应用,最近用electron开发桌面应用,用到vh,vw还是蛮方便的.
CSS3实现滚动边框,渐变边框
CSS3 是层叠样式表(Cascading Style Sheets)语言的最新版本,旨在扩展CSS2.1。它带来了许多期待已久的新特性, 例如圆角、阴影、gradients(渐变) 、transitions(过渡) 与 animations(动画) 。以及新的布局方式,如 multi-columns 、 flexible box 与 grid layouts。实验性特性以浏览器引擎为前缀(vendor-prefixed),应避免在生产环境中使用,或极其谨慎地使用,因为将来它们的语法和语义都有可能被更改。