通过-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-buttonno-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),应避免在生产环境中使用,或极其谨慎地使用,因为将来它们的语法和语义都有可能被更改。