博主信息
博文 91
粉丝 0
评论 0
访问量 236010
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
clientWidth 和 getBoundingClientRect 区别
何澤小生的博客
原创
4716人浏览过
document.documentElement.clientWidth
document.documentElement.getBoundingClientRect().width;

两个方法获取宽度的区别:

getBoundingClientRect().width获取到的其实是父级的右边距离浏览器原点(0,0)左边距离浏览器原点(0,0)的距离,即父级的宽度+2padding+2border。

此时的clientWidth等于父级的宽度+2*padding,不包括边框的宽度。

当不隐藏子级内容,即overflow为auto时,前者的宽度依然为这个数字,因为父级并没有改编盒模型。后者的宽度为上述得到的宽度-滚动条的宽度(17px);

例子如下:

<div id="divParent" style="background-color: #aaa; padding:8px; border:solid 7px #000; height:200px; width:500px; overflow:hidden;">
    <div id="divDisplay" style="background-color: #0f0; margin: 30px; padding: 10px;
        height: 400px; width: 600px; border: solid 3px #f00;">
    </div>
</div>

<script>
    var divP = document.getElementById('divParent');
    var divD = document.getElementById('divDisplay');

    var clientWidth = divP.clientWidth;
    var getWidth = divP.getBoundingClientRect().width;
    divD.innerHTML += 'clientWidth: ' + clientWidth + '<br/>';
    divD.innerHTML += 'getWidth: ' + getWidth + '<br/>';
</script>


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学