浏览器滚动条及其影响 calc()

摘要:
ViewCode2.以垂直方向为例。当内容发生变化时,如果设置了overflow:auto,滚动条可能会在场景之间切换,通常称为“闪烁”。这种“闪烁”可能会导致内容在低水平上抖动,并在高水平上影响其他参数采集。解决方案1:设置溢出:滚动,即无论内容是否超出限制,右侧都会有滚动条。如果功能正常,会影响美观。当然,如果内容必须超过限制,那么影响将被忽略。解决方案2:css3.wrap{margin-left:calc;}高级浏览器或支持。换行{padding-left:calc;

1.浏览器滚动条

默认风格各异,推荐一插件  mCustomScrollbar

不考虑兼容也可自定义样式     链接二

浏览器滚动条及其影响 calc()第1张浏览器滚动条及其影响 calc()第2张
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>

  <style>
    #scroll {
      width: 200px;
      height: 200px;
      overflow: auto;
      margin-bottom: 20px;
    }

    #scroll div {
      width: 400px;
      height: 400px;
    }

    #scroll::-webkit-scrollbar {
      /*滚动条整体部分,其中的属性有width,height,background,border等(就和一个块级元素一样)(位置1)*/
      width: 10px;
      height: 10px;
    }

    #scroll::-webkit-scrollbar-button {
      /*滚动条两端的按钮,可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果(位置2)*/
      background: #74D334;
    }

    #scroll::-webkit-scrollbar-track {
      /*外层轨道,可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果(位置3)*/
      background: #FF66D5;
    }

    #scroll::-webkit-scrollbar-track-piece {
      /*内层轨道,滚动条中间部分(位置4)*/
      background: #f00;
    }

    #scroll::-webkit-scrollbar-thumb {
      /*滚动条里面可以拖动的那部分(位置5)*/
      background: #FFA711;
      border-radius: 4px;
    }

    #scroll::-webkit-scrollbar-corner {
      /*边角(位置6)*/
      background: #82AFFF;
    }

    #scroll::-webkit-scrollbar-resizer {
      /*定义右下角拖动块的样式(位置7)*/
      background: #FF0BEE;
    }

    #scroll {
      scrollbar-arrow-color: #f4ae21;
      /**/
      /*三角箭头的颜色*/
      scrollbar-face-color: #333;
      /**/
      /*立体滚动条的颜色*/
      scrollbar-3dlight-color: #666;
      /**/
      /*立体滚动条亮边的颜色*/
      scrollbar-highlight-color: #666;
      /**/
      /*滚动条空白部分的颜色*/
      scrollbar-shadow-color: #999;
      /**/
      /*立体滚动条阴影的颜色*/
      scrollbar-darkshadow-color: #666;
      /**/
      /*立体滚动条强阴影的颜色*/
      scrollbar-track-color: #666;
      /**/
      /*立体滚动条背景颜色*/
      scrollbar-base-color: #f8f8f8;
      /**/
      /*滚动条的基本颜色*/

    }
  </style>
</head>

<body>

  <div id='scroll'>
    <div>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Debitis ex quia ab aliquid facere architecto culpa
        dolorum fugit corrupti harum accusantium quisquam inventore et magnam itaque minima hic! Impedit error.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Rerum incidunt quia ipsam totam tenetur maxime
        repellendus possimus debitis molestiae velit vel fugiat ullam excepturi est quisquam quo fugit culpa amet.</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequatur facilis ipsam iste repellat sint numquam
        explicabo voluptatum voluptate corporis fugit adipisci qui exercitationem corrupti debitis tempore omnis maxime
        at quidem!</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Architecto voluptatem dolores ab dolorem est itaque
        ut sit deserunt qui laudantium eaque vitae perspiciatis amet quasi unde inventore dolor quis. Natus!</p>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veniam quia doloremque blanditiis quas unde nostrum a
        voluptatibus quam perspiciatis non quaerat enim neque quos rerum quo dolor expedita error deserunt!</p>
    </div>
  </div>
</body>

</html>
View Code

2.影响

以垂直方向为例,当内容变化的时候,如果设置的是overflow:auto,则可能出现滚动条有无场景切换,俗称内容‘’闪动‘’。

此‘闪动’,轻则内容晃动,重则影响到其他参数获取(比如你用一个插件,要获取一个通过百分比设置宽度的容器宽度,那么,你获取的值是不稳定的,所以,基于此宽度计算的其后一切都存在问题)

解决方式一:设置overflow:scroll,也就是说不管内容有没有超出,右侧会有个滚动条(彻底消除滚动条出现影响),功能没问题就是影响美观,当然,如果内容必然超出,那影响忽略。

解决方式二:高版本浏览器支持的css3(原理就是通过获取到的容器内部包括滚动条的宽度减去可用宽度得到滚动条宽度,设置此宽度为一个间距,抵消可能出现的滚动条即可)

.wrap { margin-left:calc(100vw - 100%);}

或者.wrap { padding-left:calc(100vw - 100%); }

3. calc()     动态计算长度值 

  • 需要注意的是,运算符前后都需要保留一个空格,例如: calc(100% - 10px)

  

免责声明:文章转载自《浏览器滚动条及其影响 calc()》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CU3ER非常Cool的3D效果的Flash SliderCmsTop 大众版运行环境搭建 (CentOS+Nginx+PHP FastCGI)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用@supports完美兼容CSS属性

今天写微信小程序遇到一个问题:给page加 150rpx 的 padding-bottom 值,我考虑到 iphone X 系列的底部黑线,参考我之前写的css属性——env()和constant()设置安全区域;所以我这样写: page{ padding-bottom: calc( constant(safe-area-inset-bottom) +...

CSS 控制滚动条样式

在360浏览器中设置滚动条隐藏样式 以下 可直接实现隐藏功能 1 ::-webkit-scrollbar {/*隐藏滚轮*/ 2   display:none; 3 } 如果要兼容 PC 其他浏览器(Firefox 、IE6、IE8、Google等)设置滚动条隐藏样式,在容器(div)外面再嵌套一层overflow:hidden内部边框宽高限制尺寸和外...

在ie和chrome浏览器中滚动条样式的设置

  1、IE下设置滚动条样式的属性 scrollbar-arrow-color: color; /*三角箭头的颜色*/scrollbar-face-color: color; /*立体滚动条的颜色(包括箭头部分的背景色)*/scrollbar-3dlight-color: color; /*立体滚动条亮边的颜色*/scrollbar-highlight-...

Windows常见窗口样式和控件风格

Windows常见窗口样式和控件风格 一、窗口样式WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)WS_CHILDWINDOW 子窗口(不能与WS_POPUP合用)WS_MINIMIZE 创建窗口拥有最小化按钮WS_MINIMIZEBOX 创建窗口拥有最小化按钮,须同时指定WS_SYSTEM样式WS_VISIBLE 可见状态W...

vue列表页进入详情页,返回列表项不刷新

功能 像搜索功能,在点击某项进入详情页,再回到搜索界面,如果不做特殊处理,初始化到原来的状态,在vue中可以使用keep-alive缓存搜索界面,达到数据不刷新的结果。 思路 在搜索路由对象的meta添加一个keepAlive属性,值为true,表示在路由切换的时候,会被缓存。这样一来搜索界面的数据不会被初始化。 缓存界面 keepAlive如果为true...

JS之滚动条效果2

在前面一篇说的是滚动条效果,本篇继续在前面的基础上面针对滚动条进行操作。本次要实现的效果如下:拖动滚动条左右移动时,上面的图片内容也相对外层盒子做相对移动。 下面针对要实现的效果进行分析:首先是页面基础结构,要实现内容的相对移动,里面的内容需要针对外层盒子相对定位,宽度应该大于外层盒子,而且外层盒子应该超出隐藏。下面是一个滚动条,由底层和滚动两部分组成。...