• 浅谈javascript中一些与DOM元素相关的属性名词


     在我们日常的工作当中经常会处理一些HTML元素的长、宽等尺寸样式,以便更好的处理文档和事件:由于工作中经常搞混一些元素大小、偏移量、客户区大小、滚动大小等等这些小东东,特意将这些东西放在一起整理一下,与大家分享:

    首先说下盒子模型:盒子模型是CSS中一个重要的概念,理解了盒子模型才能更好的排版。其实盒子模型有两种,分别是 IE 盒子模型和标准 W3C 盒子模型。他们对盒子模型的解释各不相同。

     

    从上图可以看到标准 W3C 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。而IE 盒子模型的范围也包括 margin、border、padding、content,和标准 W3C 盒子模型不同的是:IE 盒子模型的 content 部分包含了 border 和 pading。

    要介绍的第一个名词就是偏移量(offset),包括元素在屏幕上占用的所有可见的空间,元素的可见大小由其高度、宽度决定,包括所有的内边距、滚动条和边框大小。通过下列四个属性可以取代元素的偏移量:

    1、offsetWidth:元素在水平方向上占用的空间大小,以像素计。包括元素的宽度、(可见的)水平滚动条的宽度、左边框宽度、右边框宽度。(border+padding+content)

    2、offsetHeight:元素在垂直方向上占用的空间大小,以像素计。包括元素的宽度、(可见的)垂直滚动条的宽度、上边框宽度、下边框宽度。(border+padding+content)

    3、offsetLeft:元素的左外边框至包含元素的左内边框之间的像素距离。(margin)

    4、offsetTop:元素的上外边框至包含元素的上内边框之间的像素距离。(marigin)

    其中offsetLeft和offsetWidth属性与包含元素有关,包含的元素的引用保存在offsetParent属性中,offsetParent属性不一定与parentNode的值相等。

    要想知道某个元素在页面上的便宜量,将这个元素的offsetLeft和offsetTop与其offsetParent的相同属性相加,如此循环直至根元素,就可以得到基本准确的值:下面的函数就是用来干这个事情的。

    function getElementLeft(element){
      var actualLeft=element.offsetLeft;
      var current =element.offsetParent;
      while(current !==null){
       actualLeft+=current.offsetLeft;
       current=current.offsetParent;
      }
      return actualLeft;
    }

    要介绍的第二个名词就是客户区(client)大小:

    元素的客户区大小指的是元素内容及其内边距所占据的空间,这里有两个属性clientWidth和clientHeight.

    clientWidth属性就是元素内容宽度加上左右内边距的宽度(content+padding)

    clientHeigth属性就是元素内容宽度加上上下内边距的宽度(content+padding)

    从字面上理解,客户区大小就是元素内部的控件大小,滚动条占用的空间不计算在内。平常我们经常会用到确定浏览器窗口的大小,就可以用到下面的代码:

    function getViewport(){
     if(document.compatMode=="BackCompat"){
      return {
        document.body.clientWidth,
        height:document.body.clientHeight
         };
      } else{
      return {
       document.documentElement.clientWidth,
       height:document.documentElement.clientHeight
        };
      }
    }

    要介绍的第三个名词就是滚动(scroll)大小了:

    它指的是包含滚动内容的元素的大小,这些元素需要通过设置css 的overflow属性才能滚动,但html除外。一下4个属性与滚动大小有关系。

    1、scrollHeight:在没有滚动的情况下,元素内容的总高度 (content)

    2、scrollWidth:在没有滚动的情况下,元素内容的总宽度(content)

    3、scrollLeft:被隐藏咋内容区域左侧的像素数。通过设置这个属性可以改变元素的滚动位置。

    4、scrollTop:被隐藏在内容区域上方的像素数。通过设置这个属性可以改变元素的滚动位置。

    可以通过scrollLeft和scrollTop属性来确定元素当前的滚动状态,也可以来设置元素的滚动位置。

    以上的这些内容仅供参考,考虑到各浏览器的差异,这些名词的解释可能有小点差异,可以参加javascript高级程序设计第三,里面有详细介绍

  • 相关阅读:
    手把手教你安装系统-只需一个U盘
    Linux系统优化05-Centos修改主机名
    Linux系统优化06-Centos远程登录与连接(SSH配置)
    数据库ACID
    Java中的String,StringBuilder,StringBuffer三者的区别
    zookeeper的选举机制
    mysql的数据类型
    常用类(四)
    常用类(三)
    常用类(二)
  • 原文地址:https://www.cnblogs.com/haohaoday/p/2747693.html
Copyright © 2020-2023  润新知