jquery中各类高度宽度的对比

跟上一篇js的一样,也是各种高度宽度傻傻分不清楚,而jquery也是平时经常使用的库,所以还是自己整理一下。

顺便看一下$(‘html‘),$(‘body‘),$(window),$(document)这几个对象,在不同的api下的取值情况。(也是傻傻分不清楚)

举个栗子。以下的测试,都是在这个的基础上进行取值的。

<style>*{margin:0;padding:0}
body{padding:20px;margin:0;border:1px solid #000;}
#div1{height:2000px;background:red;margin:10px;padding:20px;border:1px solid #000;}
#div2{width:200px;height:200px;overflow:scroll;background:green;position:absolute;left:100px;top:100px;margin:10px;padding:20px;border:1px solid #000;}
#div3{height:1000px;width:1000px;margin:10px;padding:20px;border:1px solid #000;}
</style>

<script>
        $(function(){
            var $div1 = $(‘#div1‘);
            var $div2 = $(‘#div2‘);
            var $div3 = $(‘#div3‘);
            var $html = $(‘html‘);
            var $body = $(‘body‘);
            var $win = $(window);
            var $doc = $(document);

            console.log($div1.height());
            console.log($div2.height());
            console.log($div3.height());
            console.log($html.height());
            console.log($body.height());
            console.log($win.height());
            console.log($doc.height());
        })
</script>

<div id="div1">
    <div id="div2">
        <div id="div3">
        </div>
    </div>
</div>        

height()

api document : Get the current computed height for the first element in the set of matched elements or set the height of every matched element.

获取所匹配的对象组中的第一个对象的计算后的高度,或者设置选定的所有对象的高度。

$div1 = 2000
$div2 = 200
$div3 = 1000
$html = 2124 ( $body的基础上 + 20*2[$body的内填充] + 10*2[$body的外边距] + 1*2[$body的边框]  )
$body = 2062 ( 2000[$div1的高度] + 20*2[$div1的内填充] + 1*2[$div1的边框] + 10*2[$div1的外边距] )
$win = 392 ( 整个浏览器可视高度 - 控制台的高度!!!如果不开启控制台,那么获取的将是浏览器的可视高度 )
$doc = 2124 ( 与$html计算相同 )

该值获取的是对象的实际高度,不包括border,padding,margin。如果自身没有设定高度值,则会取自身内部元素的高度总和。

innerHeight()

api document : Get the current computed inner height (including padding but not border) for the first element in the set of matched elements or set the inner height of every matched element.

获取所匹配的对象组中的第一个对象的计算后的高度,该高度包含内填充但是不包含边框和外边距,或者设置选定的所有对象的高度。

$div1 = 2040 ( 2000 + 20*2 )
$div2 = 240 ( 200 + 20*2 )
$div3 = 1040 ( 1000 + 20*2 )
$html = 2124 ( $body的基础上 + 10*2[$body的外边距] + 1*2[$body的边框] )
$body = 2102 ( 2000[$div1的高度] + 20*2[$div1的内填充] + 1*2[$div1的边框] + 10*2[$div1的外边距] + 20*2[$body的内填充] )
$win = 302
$doc = 2124 (与$html计算相同)

该值和height()相差不大,不同的是将padding也计算进来了。

outerHeight()

api document : Get the current computed height for the first element in the set of matched elements, including padding, border, and optionally margin. Returns a number (without “px”) representation of the value or null if called on an empty set of elements.

获取所匹配的对象组中的第一个对象的计算后的高度,该值包括内填充、边框、以及可选的外边距(括号内的参数为true既可)。返回数字形式的值或者空值(如果是空对象的话)。注意:该api不能用来设置高度。

$div1 = 2062 ( 2000 + 20*2 + 10*2 + 1*2 )
$div2 = 262
$div3 = 1062
$html = 2124 ( 2000[$div1的高度] + 20*2[$div1的内填充] + 1*2[$div1的边框] + 10*2[$div1的外边距] + 20*2[$body的内填充] + 10*2[$body的外边距] + 1*2[$body的边框] )
$body = 2124 (与$html计算相同)
$win = 302
$doc = 2124 (与$html计算相同)

以上值都是在outerHeight(true)的情况下取值的。

该值在innerHeight的基础上又加上了外边距的值。

scrollTop()

api document : Get the current vertical position of the scroll bar for the first element in the set of matched elements or set the vertical position of the scroll bar for every matched element.

获取所匹配的对象组中的第一个对象的距离滚动条顶部的高度,或者设置选定的所有对象的滚动高度。

chrome下的取值

$div1 = 0
$div2 = 0
$div3 = 0
$html = 0
$body = 400
$win = 400
$doc = 400

ff下的取值

$div1 = 0

$div2 = 285

$div3 = 0

$html = 528

$body = 0

$win = 528

$doc = 528

以上结果都是在随意滚动滚动条以后测量的,请关心数值出现的位置而不是数值本身。

可以看出,chrome下的scrolltop是挂载在body上的,而ff中则是挂载在html下的。


width系列的取值对照上面的height系列。

结束啦,整理一下以后再搞不清楚可以重新来看一遍。

如果我的测试有什么不妥的地方,欢迎指正~~~

时间: 2024-08-05 15:42:11

jquery中各类高度宽度的对比的相关文章

javascript中各类高度和宽度的整理

基础学的不扎实,关于高度宽度的各个属性总是糊里糊涂的,在这里理一下思路. 下面的测试以以下html结构为例 <div id="div1" style="height:200px;width:200px;padding:20px;margin:10px;border:1px solid #000;overflow:scroll"> <div id="div2" style="height:1000px;width:100

Javascript&amp;Jquery获取浏览器和屏幕各种高度宽度方法总结及运用

<js篇> Javascript获取浏览器和屏幕各种高度宽度方法总结 document.body.clientWidth       //网页可见区域宽(body) document.body.clientHeight     //网页可见区域高(body) document.body.offsetWidth     //网页可见区域宽(body),包括border.margin等 document.body.offsetHeight    //网页可见区域宽(body),包括border.m

CSS中的高度和宽度

1.简单的说,常规流向的块级元素,width为auto时,会尽量充满父元素的内容宽度,而height为auto时,则是由其内部的不浮动的子元素的高度决定(无浮动,绝对定位). 2.width:100%;width:auto <div>    <p>1</p></div><style type="text/css">div{ width:600px; overflow:auto;}p{ width:100%;      padd

Jquery对网页高度、宽度的操作

Jquery获取网页的宽度.高度 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的高) 网页正文全文宽: document.body.scrollWidth 网页正文全文高: document.body.scrollHeight 网页

jQuery中的事件和动画

一.jQuery中的事件 加载DOM 在JS中等待页面加载完成通常使用window.onload方法,而在jQuery中则使用$(document).ready()方法来替代传统的window.onload方法.这两者有很大的不同: 执行时机 window.onload方法是在网页所有的元素(包括元素关联的文件)完全加载到浏览器后才能执行.而Query中的$(document).ready()方法,在DOM载入就绪就可以对其操纵并调用它绑定的函数,此时网页中的所有元素可能并没有下载完毕. 有时我

Jquery中$(document).ready() 和 JavaScript中的window.onload方法 比较

Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2.编写个数不同 window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个(最后一个)       

Jquery:Jquery中的事件&lt;二&gt;

这几天快忙死了,办了离职还得办入职,完全打乱了我的计划,但是能有一个理想的工作,还是很开心的,以后加把劲,争取把计划再赶上来!不说了,学习!!! 五.事件对象的属性 1.event.type:获取事件的类型,其中event是事件的对象. 2.event.preventDefaule(),在上一个学习笔记中已经有介绍了,该方法是阻止默认的事件事件行为.event.stopPropagation(),该方法的作业是阻止事件的冒泡. 3.event.target,它的作用是获取到触发事件的元素.通过返

锋利的jQuery读书笔记---jQuery中操作DOM

一般来说,DOM的操作分为3个方面,即DOM Core.HTML-DOM和CSS-DOM jQuery中的DOM操作主要包括以下种类: 查找节点 查找元素节点 查找属性节点 创建节点 创建元素节点 创建文本节点 创建属性节点 插入节点 插入节点的方法 方法 描述 示例 append() 向每个匹配的元素内部追加内容 HTML代码:<p>我想说:</p> jQuery代码:$("p").append("<b>你好</b>"

jQuery中attr()方法用法实例

本文实例讲述了jQuery中attr()方法用法.分享给大家供大家参考.具体分析如下: 此方法设置或返回匹配元素的属性值. attr()方法根据参数的不同,功能也不同. 语法结构一: 获取第一个匹配元素指定属性的属性值. 代码如下: $(selector).attr(name) 参数列表: 参数 描述 name 定义要获取其值的属性名称. 实例代码: 代码如下: <!DOCTYPE html> <html> <head> <meta charset="