浏览器兼容 - 旧版overflow:auto特殊情况下不会触发浏览器重排

条件 

父元素position: relative; 不设置height,或者设置height为auto;

子元素position: absolute;元素位置的变动,导致的overflow 滚动条出现变动。

 demo代码

<!DOCTYPE html>
<html lang="zh_CN">
<head>
    <title>Document</title>
    <style>
        .content{
            width: 300px;
            height: auto;
            overflow:auto;
            position:relative;
            border:1px solid #aaa;
        }
        .inner{
            width: 100px;
            height: 50px;
            background-color: #aaa;
            position:absolute;
            top: 0;
            left: 0px;
            animation: move 5s linear infinite alternate;
        }
        @keyframes move {
            to{
                left: 300px;
            }
        }
    </style>
</head>
<body>
    <div class="content">
        111111
        <div class="inner"></div>
    </div>
    <div style="height:30px;width: 300px;background-color: blanchedalmond;">1231</div>
</body>
</html>

现象

 

chrome内核版本65(低版本)

出现滚动条时,不会触发浏览器重排,导致滚动条遮挡下方元素。

调整浏览器窗口大小,致浏览器重排后,滚动条消失后效果如下

 如果父元素设置了高度,则滚动条会出现在盒子里面。

chrome新版

滚动条出现和消失时会自动重排

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值