1.js盒子模型

指的是通过js中提供的一系列的属性和方法,获取页面中元素的样式信息值

例:

#box有很多自己的私有属性:

HTMLDivElement.prototype->HTMLElement.prototype->Element.prototype->Node.prototype->EventTarget.prototype->Object.prototype

var box = document.getElementById("box");

console.dir(box);

2.概念

2.1 内容的宽度和高度

我们设置的width/height这两个样式就是内容的宽和高;

● 如果没有设置height值,容器的高度会根据里面内容自适应,这样获取的值就是真实内容的高;

● 如果设置了固定的高度,不管内容是多还是少,其实我们内容的高度值的都是设定的那个值。

2.2 真实内容的宽度和高度

代指的是实际内容的宽高(和我们设置的height没有必然的联系),如我设置高度为200,如果内容有溢出,那么真实内容的高度是要把溢出内容的高度也加进来的。

1.CSS盒子模型包括四个部分组成:设定的宽高+padding+border+margin;

2.JS盒子模型:通过系统提供的属性和方法,来获取当前元素的样式值

JS提供的属性和方法:

    client系列:clientWidth,clientHeight,clientLeft,clientTop;

    offset系列: offsetWidth,offsetHeight,offsetLeft,offsetTop,offsetParent

    scroll系列:scrollWidth,scrollHeight,scrollLeft,scrollTop

3.关于父级

1)parentNode 结构父级

2)offsetParent 定位父级

4.JS提供的属性和方法:

1)clientWidth/clientHeight:元素设定的宽/高+左右padding值/上下padding值;

clientLeft/clientTop:代表对应左边框/上边框的宽度;

**跟内容是否溢出无关;

2)offsetWidth:clientWidth/clientHight+左右border/上下border;

offsetLeft:当前元素的外边框距离定位父级内边框的距离;

**跟内容是否溢出无关;

3)scrollHeight::

跟内容是否溢出有关

内容溢出:约等于上padding+真实内容的高度;

内容没溢出:等于clientWidth或clientHeight;

为什么是约等于?

①不同浏览器中,拿到的scrollHeight值是不同的;

②同一浏览器是否溢出隐藏,拿到的值不同;

5.关于JS盒子模型的一些问题

1)通过JS的属性和方法拿到的都是属性的复合 样式,拿不到单独的值;getCss;

2)拿到的复合样式值都是整数,不会出现小数;

3)offsetLeft只能求出当前元素的外边框距离定位元素父级的内边框之间的距离,但是求出与定位元素距离body的距离;—offset{left,top}

4)JS盒子模型的兼容性存在问题;—clientWidth,scrollHeight__—win

6.关于浏览器的常用兼容处理思想

①思想一,属性值的判断:

    attr in window

    obj.attr

    typeOf obj.attr==‘function'

②思想二,浏览器异常捕获:try{……} catch(e){……} finally{……}

③思想三,通过浏览器判断处理浏览器兼容问题;

var reg=/MSTE (6|7|8)/g;

    reg.test(window.navigator.userAgent);//true:IE678;

    window.navigator.userAgent.match(reg );true —>ie678

    window.navigator.userAgent.search(reg); !==-1—>ie678

7.结构父级中最大的是HTML;定位父级中最大的元素是body;

8.this的用法

1)当前元素被触发的时候,会调用一个函数,函数中的this指向当前这个元素;

2)函数被调用的时候,点前面是谁,this就是谁

3)自执行函数中的this,window;

4)构造函数中的this是实例;

5)回调函数中的this默认是window;

6)call可以改变this指向

JS 盒模型 scrollLeft, scrollWidth, clientWidth, offsetWidth 详解

网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight
网页可见区域宽:document.body.offsetWidth (包括边线的宽)
网页可见区域高:document.body.offsetHeight (包括边线的宽)
网页正文全文宽:document.body.scrollWidth
网页正文全文高:document.body.scrollHeight
网页被卷去的高:document.body.scrollTop
网页被卷去的左:document.body.scrollLeft
网页正文部分上:window.screenTop
网页正文部分左:window.screenLeft
屏幕分辨率的高:window.screen.height
屏幕分辨率的宽:window.screen.width
屏幕可用工作区高度:window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth

本节代码主要使用了Document对象关于窗口的一些属性,这些属性的主要功能和用法如下。

要得到窗口的尺寸,对于不同的浏览器,需要使用不同的属性和方法:若要检测窗口的真实尺寸,在Netscape下需要使用Window的属性;在 IE下需要深入Document内部对body进行检测;在DOM环境下,若要得到窗口的尺寸,需要注意根元素的尺寸,而不是元素。

Window对象的innerWidth属性包含当前窗口的内部宽度。Window对象的innerHeight属性包含当前窗口的内部高度。

全兼容的 scrollTop:  var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

http://blog.suiyidian.cn/post-94.html

js盒子模型的更多相关文章

  1. 关于js盒子模型的知识梳理

    盒子模型 JS盒子模型中的13个常用属性: clientWidth/clientHeight:可视区域的宽高,宽高+PADDING组成 clientTop/clientLeft:上边框和左边框的宽度 ...

  2. js 盒子模型与盒子偏移量

    js 盒子模型: 通过js中提供的一系列属性和方法获取页面中元素的样式信息值. 一.client系类—>只读属性不可设置 (当前元素的私有属性,和内容溢出没关系,如果给容器设置了高度,就采用设置 ...

  3. JS“盒子模型”

    列举几个常用的属性 client系列 clientWidth - 盒子真实内容的宽度[content+padding左右],不包括边线和滚动条 clientHeight - 盒子真实内容的高度[con ...

  4. JS学习:第二周——NO.3盒子模型

    1.CSS盒子模型包括四个部分组成:设定的宽高+padding+border+margin: 2.JS盒子模型:通过系统提供的属性和方法,来获取当前元素的样式值   JS提供的属性和方法: clien ...

  5. js中的盒子模型

    说到盒子模型,你第一时间会想到css盒子模型,css中的盒子模型包括(内容区+内边距+边框).那在js中怎么去获取这些属性值呢?下面一起来学习js中的盒子模型. css样式 body { margin ...

  6. 前端(十六)—— JavaScript盒子模型、JS动画、DOM、BOM

    JS盒子模型.JS动画.DOM.BOM 一.JS盒模型 1.width | height parseInt(getComputedStyle(ele, null).getPropertyValue(' ...

  7. DOM盒子模型常用属性client,offset和scroll

    JS盒子模型属性 在JS中通过相关的属性可以获取(设置)元素的样式信息,这些属性就是盒子模型属性(基本上都是有关于样式的) 属性 值 client top/left/width/height offs ...

  8. 23----2013.07.01---Div和Span区别,Css常用属性,选择器,使用css的方式,脱离文档流,div+css布局,盒子模型,框架,js基本介绍

    01 复习内容 复习之前的知识点 02演示VS创建元素 03div和span区别 通过display属性进行DIV与Span之间的转换.div->span 设置display:inline   ...

  9. JQuery或JS判断浏览器内核版本号以及是否支持W3C盒子模型

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support .在更新的 2.0 版本中,将不再支持 IE 6/7/8. ...

随机推荐

  1. Node.js学习 - Function

    Node.js函数和JavaScript类似 function say(word) { console.log(word); } function execute(someFunction, valu ...

  2. Light OJ 1008

    找规律. 首先令n=sqrt(s),上取整.讨论当n为偶数时,若n*n-s<n则x=n,y=n*n-s+1否则x=-n*n+2*n+s-1,y=n;如果n为奇数,交换x,y即可,对称的. Sam ...

  3. shell编程——if语句【转载】

    (2)shell编程——if语句_macg_新浪博客http://blog.sina.com.cn/s/blog_6151984a0100ekl6.html shell编程——if语句转载 if 语句 ...

  4. EtherChannel Cisco 端口聚合详解

    冗余连接及其实现 无论什么设备都无法保障运行的绝对稳定性,即使再优秀的产品也无法保证24×7不间断的工作.除去设备或模块损坏.传输线路中断等硬件故障原因以外,还可能由于网络流量过载.任务负荷过大而导致 ...

  5. GPRS的工作原理、主要特点

    源:http://blog.csdn.net/sdudubing/article/details/7682467 GPRS的工作原理.主要特点: 引 言 近年来,通信技术和网络技术的迅速发展,特别是无 ...

  6. PKI 笔记

    PKI – Public Key Infrastructure , 通常翻译为公钥基础设施. PKI 安全平台提供的4个服务,来保证安全的数据,分别是: l  身份识别 l  数据保密 l  数据完整 ...

  7. HDU 2897 邂逅明下(巴什博奕变形)

    巴什博奕的变形,与以往巴什博奕不同的是,这里给出了上界和下界,原先是(1,m),现在是(p,q),但是原理还是一样的,解释如下: 假设先取者为A,后取者为B,初始状态下有石子n个,除最后一次外其他每次 ...

  8. 转:Visual Studio进行Web性能测试- Part I

    原文作者:Ambily.raj Visual Studio是可以用于性能测试的工具之一.Visual Studio Test版或Visual Studio 2010旗舰版为自动化测试提供了支持.本文介 ...

  9. 一个门外汉的理解 ~ Faster R-CNN

    首先放R-CNN的原理图 显然R-CNN的整过过程大致上划分为四步: 1.输入图片 2.生成候选窗口 3.对局部窗口进行特征提取(CNN) 4.分类(Classify regions) 而R-CNN的 ...

  10. 基于Verilog HDL 的数字电压表设计

    本次实验是在“基于Verilog HDL的ADC0809CCN数据采样”实验上进一步改进,利用ADC0809采集到的8位数据,进行BCD编码,以供查表方式相加进行显示,本次实验用三位数码管. ADC0 ...