zoukankan      html  css  js  c++  java
  • JS 之DOM4

    一  获取元素的宽高

    obj.offsetWidth 元素的宽度 width+border+padding

    obj.offsetHeight 元素的高度 height+border+padding

    obj.clientWidth 元素的宽 width+padding

    obj.clientHeight 元素的高 height+padding

        <style type="text/css">
        *{
            margin:0;
            padding:0;
        }
        #box{
            100px;
            height: 100px;
            background: #f00;
            padding: 20px;
            position: absolute;
            left:300px;
            top:200px;
            border:10px solid #000;
        }
        </style>
    </head>
    <body>
        <dib id="box"></dib>
    
    </body>
    </html>
    
    <script type="text/javascript">
    var box=document.getElementById("box");
    console.log(box.offsetWidth);//160 width+border+padding
    console.log(box.clientWidth);// 140 width+padding
    
    </script>

    document.body.clientWidth ==> BODY对象宽度
    document.body.clientHeight ==> BODY对象高度
    document.documentElement.clientWidth ==> 可见区域宽度
    document.documentElement.clientHeight ==> 可见区域高度

    document.body.scrollWidth - 网页总宽
    document.body.scrollHeight - 网页总高

    document.body.scrollTop - 有滚动条的时候,向下拖动滚动条,上方不显示的那部分高度
    document.body.scrollLeft - 同上

    看了以上代码,可能会有疑问说body和可见区域到底有什么不同呢,我们在console里运行一下会发现在不同的网页中有不同的情况值,有的document.body.clientWidth和document.documentElement.clientWidth 的值相同,有的却不同,原因在哪呢?

    原因就是:在浏览器默认的情况下,body有8-10px左右的边距,而可见区域包括了这个边距,因此如果我们用到body{padding:0;margin:0;}来消除这种默认的情况。那么document.body.clientWidth和document.documentElement.clientWidth 的值就会相同。

  • 相关阅读:
    Linux 多线程编程 实例 1
    面试题-链表反转c实现
    information_schema.TABLES
    mongodb遇到的错误
    MySQL优化的奇技淫巧之STRAIGHT_JOIN
    mongodb安装
    XtraBackup安装
    提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
    我用 TypeScript 语言的七个月
    Grunt之添加文件监视:Grunt-watch (已备份)
  • 原文地址:https://www.cnblogs.com/xubj/p/7993096.html
Copyright © 2011-2022 走看看