获取dom元素的宽度和高度

一、获取css的大小

1.第一种通过内联样式

    var box = document.getElementById(‘box‘);
    var w = box.style.width;
    var h = box.style.height;

2.通过计算元素的大小(但是在ie情况下有一个问题,那就没写widht和height的css就返回auto);

    var style = window.getComputedStyle ? window.getComputedStyle(box,null) : null || box.currentStyle;
    var w = style.width;
    var h = style.height;

3.通过CSSStyleSheet对象中的cssRules(或rules)属性获取元素大小(但是无法获得计算的样式)

    var sheet = document.styleSheets[0];
    var rule = (sheet.cssRules || sheet.rules)[0];
    var w = rule.style.width;
    var h = rule.style.height;

以上三种方法都不行。

二、获取实际的大小

1.clientWidth和clientHeight

    var w = box.clientWidth;
    var h = box.clientHeight;

说明:padding和scroll变动,才有变化

2.scrollWidth 和box.scrollHeight;

    var w = box.scrollWidth;
    var h = box.scrollHeight;

说明,1)border变化,不同浏览器有不同变化2)padding变化,有变化3)margin变化,无变化

3.offsetWidth和offsetHeight

    var w = box.scrollWidth;
    var h = box.scrollHeight;

说明,padding和border有变动,才有变化

三、获取元素周变的距离(原本只能从左边和上边)

1.clientLeft 和 clientTop
这组属性可以获取元素设置了左边框和上边框的大小。

    var l = box.clientLeft;
    var t = box.clientTop;

2.获取相对父级元素的位置

    var l = box.offsetLeft;
    var t = box.offsetTop;
    var parent = box.offsetParent;  //获取伏击元素,返回body

说明,如果没有position:absolute;如果每个浏览器有不同解释

那么获取多层中的元素到body或html的距离,代码如下:

    function offsetLeft(element){
        var left = element.offsetLeft;
        var parent = element.offsetParent;

        while(parent!== null){
            left += parent.offsetLeft;
            parent = parent.offsetParent;
        }
        return left;
    }

3.

//这组属性可以获取滚动条被隐藏的区域大小,也可设置定位到该区域。
box.scrollTop; //获取滚动内容上方的位置
box.scrollLeft; //获取滚动内容左方的位置
时间: 2024-08-07 04:31:14

获取dom元素的宽度和高度的相关文章

IOS 动态获取 UILabel 元素的宽度和高度

//高度自适应 UIFont *font = [UIFont fontWithName:@"Arial" size:13]; //设置一个行高上限 CGSize size = CGSizeMake(320,1000); //计算实际frame大小,并将label的frame变成实际大小 CGSize labelsize = [entity.content sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreak

javascript中获取dom元素高度和宽度

javascript中获取dom元素高度和宽度的方法如下: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWidth (包括边线的宽)网页可见区域高: document.body.offsetHeight (包括边线的高)网页正文全文宽: document.body.scrollWidth网页正文全文高: document.body.scrollH

jquery如何获取元素的宽度和高度

jquery如何获取元素的宽度和高度: 这当然是比较基础的问题,不过有可能初学者还是不够明了,下面就简单介绍一下. 获取元素的宽度: $(selector).width() 获取元素的高度: $(selector).height() selector是选择器,例如id.类和元素选择器登登. 原文地址是:http://www.51texiao.cn/jqueryjiaocheng/2015/0613/4046.html 最为原始地址是:http://www.softwhy.com/forum.ph

获取DOM元素位置和尺寸大小

JavaScript获取DOM元素位置和尺寸大小 在一些复杂的页面中经常会用JavaScript处理一些DOM元素的动态效果,这种时候我们经常会用到一些元素位置和尺寸的计算,浏览器兼容性问题也是不可忽略的一部分,要想写出预想效果的JavaScript代码,我们需要了解一些基本知识. 基础概念 为了方便理解,我们需要了解几个基础概念,每个HTML元素都有下列属性 offsetWidth clientWidth scrollWidth offsetHeight clientHeight scroll

JS中获取 DOM 元素的绝对位置实例详解

在操作页面滚动和动画时经常会获取 DOM 元素的绝对位置,例如 本文 左侧的悬浮导航,当页面滚动到它以前会正常地渲染到文档流中,当页面滚动超过了它的位置,就会始终悬浮在左侧. 本文会详述各种获取 DOM 元素绝对位置 的方法以及对应的兼容性.关于如何获取 DOM 元素高度和滚动高度,请参考视口的宽高与滚动高度 一文. 概述 这些是本文涉及的 API 对应的文档和标准,供查阅: API 用途 文档 标准 offsetTop 相对定位容器的位置 MDN CSSOM View Module clien

CSS单位,em,rem以及元素的宽度和高度

一.em和rem 说到自适应布局,就不得不提到rem这个单位. 简单的说 em: 就是字体大小,根据元素自身的字体大小来定,如果自身没有定义字体大小,则继承父元素的字体大小,即1em = 1 font-size; rem: 和em差不多,可以看成是root-em,是根据根元素的字体大小来定义的,即html设置的字体大小来定义,默认html的字体大小是16px: 用一个demo来说明最好: <style> html{ font-size: 50px; } #wrapper{ font-size:

javascript获取屏幕的可用宽度和高度

说明 获取屏幕的可用宽度和高度 示例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>显示浏览器窗口的高度和宽度</title> <link rel="styleshee

Android下在onCreate中获取控件的宽度和高度(通过回调)

有时候需要在onCreate方法中知道某个View组件的宽度和高度等信息, 而直接调用View组件的getWidth().getHeight().getMeasuredWidth().getMeasuredHeight().getTop().getLeft()等方法是无法获取到真实值的,只会得到0. 这是因为View组件布局要在onResume回调后完成. 下面提供实现方法: 第一种: onGlobalLayout回调会在布局完成时自动调用 img1.getViewTreeObserver().

通过class和id获取DOM元素的区别

1.通过id获取DOM元素的方法:document.getElementById("id名") 2.通过class获取DOM元素的方法:document.getElementsByClassName("class名") 从函数的名字可以知道,通过getElementsByClassName获取到的是一个数组,包括多个DOM元素,所以要执行DOM元素的方法,必须加一个索引,比如document.getElementsByClassName("class名&q