滚动条那些事

一、滚动条样式

1. ie8浏览器

名称描述
scrollbar-arrow-color三角箭头的颜色
scrollbar-face-color立体滚动条的颜色(包括箭头部分的背景色)
scrollbar-3dlight-color立体滚动条亮边的颜色
scrollbar-highlight-color滚动条的高亮颜色(左阴影?)
scrollbar-shadow-color立体滚动条阴影的颜色
scrollbar-darkshadow-color立体滚动条外阴影的颜色
scrollbar-track-color立体滚动条背景颜色
scrollbar-base-color滚动条的基色
        出现滚动条的元素{/*三角箭头的颜色*/scrollbar-arrow-color: #fff;/*滚动条滑块按钮的颜色*/scrollbar-face-color: #0099dd;/*滚动条整体颜色*/scrollbar-highlight-color: #0099dd;/*滚动条阴影*/scrollbar-shadow-color: #0099dd;/*滚动条轨道颜色*/scrollbar-track-color: #0066ff;/*滚动条3d亮色阴影边框的外观颜色——左边和上边的阴影色*/scrollbar-3dlight-color:#0099dd;/*滚动条3d暗色阴影边框的外观颜色——右边和下边的阴影色*/scrollbar-darkshadow-color: #0099dd;/*滚动条基准颜色*/scrollbar-base-color: #0099dd;}

2. 其他浏览器(参考-风铭大师)

名称描述
::-webkit-scrollbar滚动条整体部分,其中的属性: width,height,background,border等。
::-webkit-scrollbar-button滚动条两端的按钮。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果。
::-webkit-scrollbar-track外层轨道。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果。
::-webkit-scrollbar-track-piece内层轨道,具体区别看下面gif图,需要注意的就是它会覆盖第三个属性的样式。
::-webkit-scrollbar-thumb滚动条里面可以拖动的那部分。
::-webkit-scrollbar-corner边角,两个滚动条交汇处。
::-webkit-resizer两个滚动条交汇处用于拖动调整元素大小的小控件(基本用不上)
::-webkit-scrollbar {width: 6px; /*纵向滚动条的宽度*/height: 6px; /*横向滚动条的高度*/background-color: #181c32;
}::-webkit-scrollbar-thumb {background-color: #5a76cd;
}

二、滚动条造成页面抖动

1. 造成页面抖动的原因:

当布局用到margin:0 auto;左右水平居中时,且有的页面有滚动条,有的页面没有,这样会造成抖动。

div{width:1200px;margin:0 auto;
}
<body><div></div>
</body>

2. 解决办法(参考1-zh_rey、 参考2-OZCNO、推荐参考3-张鑫旭 ):

(1)一直存在滚动槽overflow-y:scroll;

(2)让页面右边偏移滚动条的宽度那么长margin-left: calc(100vw - 100%);padding-left: calc(100vw - 100%);

  • 1、加在居中定宽主体的父级身上。
  • 2、calc 是CSS3中的计算,IE10+浏览器支持,IE9浏览器基本支持(不能用在background-position上);-
  • 3、100vw 相对于浏览器的 window.innerWidth,是浏览器的内部宽度,注意,滚动条宽度也计算在内!而100%是可用宽度,是不含滚动条的宽度。 于是,calc(100vw - 100%) 就是浏览器滚动条的宽度大小(如果有,如果没有滚动条则是0)!左右都有一个滚动条宽度(或都是0)被占用,主体内容就可以永远居中浏览器啦,从而没有任何跳动!
    在这里插入图片描述
    注意:ie 浏览器有个 offset 偏移量,比较推荐使用 padding-left(能解决部分问题)。
    设置 padding-left ,有时候拉动横向滚条条时,页面的偏移量(这个时候是padding)还是不正确,这时需要做响应式。
@media screen and (min-width: 1240px) {定宽主体 {padding-left: calc(100vw - 100%);}
}

此时,原来定宽主体就不用再写 padding-left: calc(100vw - 100%);,只需要写上面这段响应式就可以了。

(3)兼容写法:

html {overflow-x: hidden;overflow-y: auto;
}
body {width: 100vw;overflow: hidden;padding-left: calc(100vw - 100%);
}

也可以看我之前写的,不过相差不是很大:滚动条造成页面抖动问题


三、滚动条部分留白问题

造成滚动条留白的原因是宽度设置了100%,哪里留白就把那的 width:100% 改为:min-width:100%就好了。


四、让背景图不跟随滚动条滚动

解决办法(参考-站住,别跑):

(1)css:
在设置背景图的元素中设置一条属性: background-attachment:fixed;,兼容IE6;
(2)js:

<script type="text/javascript">var scrollBackground = true;
</script>  

具体效果就看原文吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【自定义组件】如何引用自定义组件

1. 可以在APP.JSON内引用自定义组件&#xff0c;此时该组件为所有页面共享。 2. 可以在页面的JSON文件内引用自定义组件&#xff0c;此时为该页面独享。 引入代码如下&#xff1a; /** * myTag 自定义组件名称 * path/to/the/custom/component 自定义组件所在路径 **/ {"…

Javascript高级程序设计第二版第十四章--异常--笔记

chaepter 14 错误异常分享。 其实主要是就是try{}catch(error){} finally{}这个语句的理解。主要一点&#xff1a;finally 在 return 之后 运行。这跟java里边的如出一辙。 比如&#xff1a;try{return1;}catch(error){return2;} finally{return0;}返回 return 0;然后接着就是 …

Java并发教程–原子性和竞争条件

原子性是多线程程序中的关键概念之一。 我们说一组动作是原子的&#xff0c;如果它们都以不可分割的方式作为一个单一的操作执行。 认为多线程程序中的一组操作将被串行执行是理所当然的&#xff0c;可能会导致错误的结果。 原因是由于线程干扰&#xff0c;这意味着如果两个线程…

sqlite3 数据库(一)

SQLite 数据库&#xff0c;是一个非常轻量级自包含(lightweight and self-contained)的DBMS&#xff0c;它可移植性好&#xff0c;很容易使用&#xff0c;很小&#xff0c;高效而且可靠。 SQLite嵌入到使用它的应用程序中&#xff0c;它们共用相同的进程空间&#xff0c;而不是…

HTML引入vue.js,在ie浏览器中不显示

因为只有两个页面&#xff0c;所以我没有用 vue-cli 搭框架&#xff0c;直接在 HTML 中引入vue.js 文件。发现其他浏览器都能正常显示&#xff0c;ie 下显示不正常&#xff0c;而且还报错&#xff0c;错误信息如下&#xff1a; 原因&#xff1a; 主要是因为 ie 不支持 ES6 的语…

【button】 按钮组件说明

原型&#xff1a; <buttonsize"[default | mini]"type"[primary | default | warn]"plain"[Boolean]"disabled"[Boolean]"loading"[Boolean]"form-type"[submit | reset]"open-type"[contact | share | g…

具有Infinispan的聚集幂等消费者模式

我创建了一个小项目 &#xff0c;该项目展示了如何将JBoss Infinispan与Apache Camel和幂等消费者模式一起使用&#xff0c;以确保消息不会在集群环境中被处理两次。 假设您有一个应用程序&#xff0c;该应用程序必须通过将其部署在多个容器上才能轻松扩展。 但是应用程序必须…

UVa OJ 128 - Software CRC (软件CRC)

Time limit: 3.000 seconds限时&#xff1a;3.000秒 Problem问题 You work for a company which uses lots of personal computers. Your boss, Dr Penny Pincher, has wanted to link the computers together for some time but has been unwilling to spend any money on the…

ipv4编址

IPv4的编址&#xff1a; IPv4的地址有32位&#xff0c;通过使用点分十进制法&#xff0c;将其划分成4个由“.”隔断的部分&#xff0c;每一个部分的取值是0~255 {2^0~(2^8)-1} IP地址是32位类似这样的二进制串&#xff1a;1100 0000 1111 1111 1111 1111 1111 1110&#xff08;…

基于 vue 的验证码组件

登录页面有个验证码&#xff0c;暂时没用到后台&#xff0c;在网上找了两个博客&#xff0c;记录一下。 一、直接写&#xff08;参考-UIEngineer&#xff09; 这个样式比较简单&#xff0c;直接在需要验证码的地方添加就行了。如果这个页面比较复杂&#xff0c;用组件会比较好…

Java 8 Friday:更多功能关系转换

过去&#xff0c;我们一直在每个星期五为您提供有关Java 8的新内容的新文章。这是一个非常令人兴奋的博客系列 &#xff0c;但我们想再次将重点放在Java和SQL的核心内容上。 我们仍然偶尔会写关于Java 8的博客&#xff0c;但不再是每个星期五&#xff08;有些人已经注意到&…

【WXS全局对象】Date

属性&#xff1a; 名称说明Date.parse( [dateString] )解析一个日期时间字符串&#xff0c;并返回 1970/1/1 午夜距离该日期时间的毫秒数。Date.UTC(year,month,day,hours,minutes,seconds,ms) 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。 参数&#xff1a;year/m…

13个不可不知的ASP.NET MVC扩展点

ASP.NET MVC设计的主要原则之一是可扩展性。处理管线&#xff08;processing pipeline&#xff09;上的所有&#xff08;或大多数&#xff09;东西都是可替换的。因此&#xff0c;如果您不喜欢ASP.NET MVC所使用的约定&#xff08;或缺乏某些约定&#xff09;&#xff0c;您可以…

程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入(图文详解)

https://blog.csdn.net/ChenRui_yz/article/details/86489067 随着互联网的普及&#xff0c;网络安全变得越来越重要&#xff0c;程序员需要掌握最基本的web安全防范&#xff0c;下面列举一些常见的安全漏洞和对应的防御措施。01 常见的Web安全问题1.前端安全XSS 漏洞CSRF 漏洞…

在 HTML 中引入 vue.js 写页面

突然说要写两个页面&#xff08;只有两个页面&#xff0c;不是一个完整的项目。。&#xff09;&#xff0c;有点懵&#xff0c;不知道从哪下手&#xff0c;而且只对 vue 熟悉那么一丢丢&#xff0c;其他框架不是很熟悉。但是没办法鸭&#xff0c;只能硬着头皮去做了&#xff01…

JavaFX技巧14:StackPane子项-隐藏但不消失

另一个简短提示&#xff1a;Swing提供了一个名为CardLayout的布局管理器&#xff0c;该管理器管理容器内的一组组件&#xff08;卡&#xff09;&#xff0c;但始终仅显示其中一个。 方法CardLayout.show&#xff08;Container &#xff0c;String&#xff09;允许在组件/卡之间…

【WXS数据类型】Array

属性&#xff1a; 名称值类型说明[Array].constructor[String]返回值为“Array”,表示类型的结构字符串[Array].length[Number]返回数组长度 方法&#xff1a; 原型&#xff1a;[Array].toString() 说明&#xff1a;将数组转换成字符串&#xff0c;用逗号分隔每个元素 原型&am…

Mschart图表制作

首先一次安装这三个 &#xff08;1&#xff09;.Microsoft .NET Framework 3.5 的 Microsoft 图表控件 &#xff08;2&#xff09;.Microsoft .NET Framework 3.5 语言包的 Microsoft 图表控件 &#xff08;3&#xff09;.Microsoft Chart Controls Add-on for Microsoft Visua…

vue打包后,font格式错误

本地测试没有问题&#xff0c;项目打包以后&#xff0c;浏览器打开控制台&#xff0c;提示font格式错误&#xff1a; 把我的双引号给去掉了。。。-^- 不开心。 解决办法&#xff1a; 1. 把 font: 字体粗细 字体大小/行高 "字体样式"; 分开来写。 改成&#xff1a;…

获取可用密码算法的列表

您如何学习可用的密码算法&#xff1f; Java规范列出了几种必需的密码&#xff0c;摘要等&#xff0c;但是提供程序通常提供的不止这些。 幸运的是&#xff0c;这很容易了解我们系统上的可用内容。 public class ListAlgorithms {public static void main(String[] args) {//…