深入了解overflow

1.如果overflow-x与overflow-y值不同
   其中一个赋值为visiable,另一个赋值scroll/auto/hidden,那么visiable会重置为auto

2.overflow:visible妙用
   IE7下,文字越多,按钮两侧的padding留白就越大!-bug
   解决办法:<button sytle="overflow:visible"></button>

3.overflow与滚动条
   无论什么浏览器,默认滚动条均来自html,而不是body
   IE7默认-html{overflow-y:scroll;}
   IE8+默认-html{overflow:auto;}
   去除页面默认滚动条: html{overflow:hidden;}
   注意:下面的写法是冗余的
   html,body{overflow:hidden;},滚动条与body无关,给body设置overflow无意义

  * 获得滚动条滚动的高度
    * chrome : document.body.scrollTop;
    * 其他 : document.documentElement.scrollTop;
    * 兼容 : document.documentElement.scrollTop || document.body.scrollTop;

  * overflow的padding-bottom缺失现象(只有chrome不会出现)
    这样就照成不一样的scrollHieight

  * 滚动条的宽度机制
     滚动条会占用容器的可用宽度或高度,所以在布局时要使用自适应或预留滚动条的宽度

   解决,当出现滚动条时,水平居中元素跳动问题的办法:
   .container{
        width:100%;
        padding-left:calc(100vw-100%);/*100vw是浏览器宽度,100%是可用内容宽度,相减就是滚动条的宽度*/
    }

   * 自定义滚动条

     * -webkit

       ::webkit-scrollbar{width:8px;height:8px;}/*血槽高度*/

       ::webkit-scrollbar-thumb{background-color:rgba(0,0,0,.3);}/*拖动条*/

       ::webkit-scrollbar-track{background-color:#ddd;border-radius:6px;}/*背景槽*/
     * IE浏览器: 去他地吧

     * ios原生滚动超边界效果

 

4.overflow与absolut
   父元素overflow:hidden/scroll,内部元素absolute,会产生失效

5.resize拉伸(css3)
   resize:both; - 水平垂直两边拉
   resize:horizontal; - 水平拉
   resize:vertical; - 垂直拉
   注意: 此声明要想起作用,元素的overflow不能是visible

6.text-overflow:ellipsis 与 overflow:hidden 一起使用
   实现文本溢出省略号显示

7.overflow与锚点应用
   滚床单(锚点的本质:改变容器的滚动高度)条件:容器可滚动且锚点元素在容器内部

    比较牛逼的做法:实现选项卡(无js,兼容性嗷嗷地)
    注意:适用场景,页面为单屏页面,否也会影响html的滚动条

posted on 2016-07-07 15:15  爱疯的小疯子  阅读(775)  评论(0编辑  收藏  举报

导航