javascript - document.body.clientWidth由什么计算得到?
天蓬老师
天蓬老师 2017-04-10 17:14:00
[JavaScript讨论组]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">        
    <style>
        body{                
            box-sizing:content-box;
            width:980px;
            padding: 10px;            
            border:1px solid red;
        }
    </style>
</head>
<body>    
</body>
<script>
    function log(arg){
        console.log(arg);
    }
    log(document.body.clientWidth);//1000
    log(document.body.clientHeight);//20
    log(document.documentElement.clientWidth);//1280
    log(document.documentElement.clientHeight);//393
</script>
</html>

在chrome和firefox下测试得到的都是那个结果,我想问的是为什么计算的时候没有包括border?
谁能给讲讲document.body.clientWidthdocument.documentElement.clientWidth的区别吗?万分感谢!

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
怪我咯

Element.clientWidth 属性表示元素的内部宽度,以像素计。该属性包括内边距,但不包括垂直滚动条(如果有的话)、边框和外边距。详情

document.documentElement取得的是html元素,也就是viewport(视口);

viewport的功能在于控制你网站的最高块状(block)容器:<html>元素

viewport是严格的等于浏览器窗口的宽度高度。viewport不是一个HTML的概念,所以你不能通过CSS修改它。而<html>元素为viewport宽度的100%。

视口的尺寸通过 document. documentElement. clientWidth/Height 取得;

document.documentElement.clientWidth/Height不包含滚动条

假设给html元素赋予一个宽度25%,document. documentElement. clientWidth/Height依然给出了viewport的尺寸,而不是<html>元素。这是特殊的规则只针对这个特殊的元素针对这个特性对。在其余任何情况下元素使用实际的宽度。

有关于浏览器视口的详细讲解移步这里

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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