`
star65225692
  • 浏览: 277286 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类

各种情况下JS获取元素宽高

 
阅读更多

为了叙述简单,这里仅拿width示例。

情景一,元素style属性设置了width/height

<div style="width:100px;">test<div>
<script>
    var div = document.getElementsByTagName('div')[0];
    alert(div.style.width);
</script>默认分类

如上,使用el.style.width即可。如果没有在style属性中设置width,那么使用el.style.width将获取不到,如下

<div>test<div>
<script>
    var div = document.getElementsByTagName('div')[0];
    alert(div.style.width);
</script>

所有浏览器中弹出的是空字符串。即使将样式嵌在页面的css中也仍然获取不到,如下

<style>
    div {width: 100px}
</style>
<div>test<div>
<script>
    var div = document.getElementsByTagName('div')[0];
    alert(div.style.width);
</script>

这时候getComputedStyle或currentStyle将会派上用场。

情景二,元素通过引入样式表设置width/height

有两种方式引入样式表,一是使用link标签引入单独的css文件,二是直接在html页面中使用style标签。这里使用第二种方式测试。如下

<style>
    div {width: 100px}
</style>
<div>test<div>
<script>
    function getStyle(el, name) {
        if(window.getComputedStyle) {
            return window.getComputedStyle(el, null);
        }else{
            return el.currentStyle;
        }
    }
    var div = document.getElementsByTagName('div')[0];
    alert(getStyle(div, 'width'));
</script>

所有浏览器中均弹出了100px。说明通过getComputedStyle和currentStyle可以获取到元素被定义在样式表中的宽高。

那如果元素即没有在style属性中设置宽高,也没有在样式表中设置宽高,还能用getComputedStyle或currentStyle获取吗?答案是getComputedStyle可以,currentStyle不可以 。如下

<div>test<div>
<script>
    function getStyle(el, name) {
        if(window.getComputedStyle) {
            return window.getComputedStyle(el, null);
        }else{
            return el.currentStyle;
        }2011年06月
    }
    var div = document.getElementsByTagName('div')[0];
    alert(getStyle(div, 'width'));
</script>

div 既没有设置style属性,也没有引入样式表。在Firefox/IE9/Safari/Chrome/Opera中可以获取到宽高(浏览器默认),但IE6/7/8中却不行,返回的是auto。

注意,这里getStyle方法优先使用getComputedStyle,而IE9已经支持该方法。因此IE9中可以获取到宽高。但IE6/7/8不支持,只能使用currentStyle获取。

分享到:
评论

相关推荐

    js获取网页宽高

    在JavaScript编程中,获取网页的宽高是一项常见的需求,特别是在页面布局、动态调整元素尺寸或者进行响应式设计时。本文将深入探讨如何利用JavaScript来获取浏览器窗口以及网页内容的宽度和高度。 首先,我们需要...

    javascript获取隐藏元素(display:none)的高度和宽度的方法

    2. 通过JavaScript的计算样式方法,如obj.currentStyle或document.defaultView.getComputedStyle(),来获取元素的宽度和高度。 3. 获取完尺寸后,需要将元素的display属性和visibility属性恢复原样,以避免元素位置...

    uni-app 组件里面获取元素宽高的实现

    但是在某些情况下,直接在`mounted`中获取元素宽高可能会因为页面还未完全渲染完毕而获取不到正确的尺寸。为了解决这个问题,可以使用`setTimout`方法延迟获取,或者使用`this.$nextTick`确保在下一个DOM更新循环...

    微信小程序实现动态获取元素宽高的方法分析

    在微信小程序中,动态获取元素宽高是一项关键的开发任务,尤其对于布局和交互设计至关重要。本文将深入探讨如何在微信小程序中实现这一功能,并提供相关的操作技巧和注意事项。 微信小程序提供了`wx....

    js判断图片加载完成后获取图片实际宽高的方法

    然后,通过JavaScript获取这个`&lt;img&gt;`标签的引用。接着,创建一个新的`Image`对象,并将其`src`属性设置为原始`&lt;img&gt;`标签的`src`属性值。一旦图片加载完成,`Image`对象的`onload`事件将被触发,在这个事件中,可以...

    js获取Html元素的实际宽度高度的方法

    首先,我们要了解的是JavaScript中获取元素尺寸的基本属性。文档中提到了两种主要情况:宽度和高度直接写在CSS样式表中,以及宽度和高度写在HTML元素的内联样式中。 当宽度和高度在CSS样式表中定义时,如`#div1 { ...

    js获取隐藏元素宽高的实现方法

    在Web开发过程中,经常需要获取元素的尺寸信息,包括宽度和高度。然而,当元素被隐藏时,例如通过CSS属性display: none或者visibility: hidden设置为隐藏,常规的获取元素尺寸的方法就无法得到正确的结果。本文将...

    javascript获取隐藏元素(display-none)的高度和宽度的方法.docx

    2. **MDN Web 文档**:提供了关于 `display` 和 `visibility` 的详尽解释以及 JavaScript 获取元素尺寸的方法。 3. **W3School**:提供了简单的示例和交互式演示。 通过以上方法,我们可以有效地解决获取 `display:...

    原生js获取浏览器窗口及元素宽高常用方法集合

    在前端开发中,获取浏览器窗口以及页面元素的宽高是一个经常执行的操作。原生JavaScript为我们提供了多种方法来实现这一需求。本文将详细介绍这些常用方法,并解释它们的应用场景。 1. 获取窗口可视区域的宽度和...

    解决vue项目获取dom元素宽高总是不准确问题

    总结来说,解决Vue项目中获取DOM元素宽高不准确的问题,关键在于正确使用`$nextTick`来确保DOM更新完成后再进行尺寸获取。同时,了解并灵活运用`ref`、DOM元素的各种尺寸属性以及`getComputedStyle`,能够帮助开发者...

    javascript获取网页宽高方法汇总.docx

    总之,JavaScript 提供了多种方式来获取网页宽高和滚动位置,但需要注意的是,这些属性在不同的浏览器中可能存在差异,因此在编写代码时,需要进行适当的浏览器兼容性检查和调整,以确保代码在各种环境下都能正确...

    javascript获取页面各种高度

    通过以上介绍,我们可以看到JavaScript提供了丰富的API来获取页面的各种高度信息。在实际开发过程中,开发者可以根据具体需求选择合适的API来优化用户体验,提高网站性能。需要注意的是,在不同浏览器和操作系统中,...

    获取页面元素实际宽高的属性的使用

    - **定义**:`clientWidth`用于获取元素的实际宽度,`clientHeight`用于获取元素的实际高度。它们返回的都是数值类型。 - **计算方式**:这两个属性会受到`padding`的影响,但不包括`border`和`margin`。具体而言,`...

    原生js获取宽高与jquery获取宽高的方法关系对比

    在JavaScript和jQuery中,获取元素宽高是常见的需求,它们提供了不同的方法来实现这一功能。在本文中,我们将深入探讨原生JavaScript与jQuery获取元素宽度的差异和关系,并结合具体的属性和方法进行对比。 首先,...

    JQ 获取图片真实宽高

    "JQ 获取图片真实宽高"这个标题指的是使用jQuery来获取图片在页面加载完成后的真实宽度和高度,因为图片在未完全加载前,其宽度和高度可能是未知的。下面我们将深入探讨如何实现这一功能,并了解相关的知识点。 1. ...

    javascript获取隐藏dom的宽高 具体实现

    首先clone一个DOM,设置position:absolute,然后设置top为一个比较大的负值,然后使其显示出来,最后获取到了DOM的宽高后,将其remove。具体代码如下:Js代码 代码如下:function getCss(elem, css){ if (window....

    js获取浏览器高度和宽度值.pdf

    本文将详细解析如何通过JavaScript获取不同浏览器中的浏览器高度、宽度以及相关的一些其他尺寸信息。 1. **浏览器高度和宽度的获取** - `document.body.clientWidth` 和 `document.body.clientHeight`: 这两个...

    原生JS获取元素集合的子元素宽度实例

    掌握如何通过原生JavaScript获取元素及其子元素的尺寸信息,并根据这些信息动态调整样式,是前端开发中一项非常实用的技能。本文的实践案例,为处理类似问题提供了一个可参考的思路和方法,对于希望深入学习和应用...

    js获取隐藏元素的宽高

    获取隐藏元素(display:none)的物理尺寸 问题及场景 假如我们有这样一个输入框,点击能展开选择。如下图: 在这里输入框和下方的展开区域是分离的,独立的两个控件!初始状态下面的可选框是隐藏的(ng-show=false)...

Global site tag (gtag.js) - Google Analytics