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 的值就会相同。

  • 相关阅读:
    Configuring the launch of the remote virtual machine to debug
    java LimitedThreadPool
    java并发之SynchronousQueue实现原理
    java 线程池线程忙碌且阻塞队列也满了时给一个拒接的详细报告
    Java程序监控指标
    JDK提供的四种线程池
    Guava的Supplier实现单例
    JMM
    Dubbo源码解读:appendAnnotation [01]
    PCI(Payment Card Industry)合规
  • 原文地址:https://www.cnblogs.com/xubj/p/7993096.html
Copyright © 2011-2022 走看看