怎么用js获取div的当前宽度?

比如一个div的id设成box,宽度设成100%,会根据屏幕大小自动适应宽度,怎么获取当前的宽度然后赋给高度?... 比如一个div的id设成box,宽度设成100%,会根据屏幕大小自动适应宽度,怎么获取当前的宽度然后赋给高度? 展开
 我来答
D双焕
推荐于2019-08-29 · TA获得超过4308个赞
知道答主
回答量:3
采纳率:0%
帮助的人:2374
展开全部

第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}。这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度。

第二种情况就是宽和高是写在行内中,比如style="width:120px;",这中情况通过上述2个方法都能拿到宽度。(什么是行内,就是直接在html标签上写样式)

小结,因为id.offsetWidth和id.offsetHeight无视样式写在样式表还是行内,所以我们获取元素宽和高的时候最好用这2个属性。注意如果不是写在行内style中的属性都不能通过id.style.atrr来获取。

现在的前端制作很少直接把样式写style里了,都是写在样式表里。如果你要获取的样式没有相对应的(就像#div1.style.width对 应#div1.offsetWidth),就只能分别针对不用浏览器来获取样式表的属性了,可以试着搜索“JS 获取样式属性”之类的。

代码:

var o = document.getElementById("view");var h = o.offsetHeight; //高度var w = o.offsetWidth; //宽度

扩展资料

js编程:

JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){}。

Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译),但由于V8的核心部份多数用Javascript撰写(而SpiderMonkey是用C++)。

因此,在不同的测试上,两者性能互有优劣。与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。

参考资料:javascript_百度百科

925211
推荐于2019-08-03 · TA获得超过5391个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

分析如下:

运用js获取div宽度,原生JS获取DIV的属性有两种方法,js 获取方法命令如下:

currentStyle和getComputedStyle,前者是兼容IE端的,后者也兼容W3C,两者内核不同,所以就有两种兼容的写法。

如果只是单独的获取某个属性值可以这样写:

obj.currentStyle[属性名];这种不兼容-webkit-内核的,

所以一般是封装成一个函数可以到处调用,而且不止针对某个属性值。

function getStyle(obj,styleName){if(obj.currentStyle){return obj.currentStyle[styleName];}else{return getComputedStyle(obj,null)[styleName];

语法

parseInt(string, radix)

参数 描述

string 必需。要被解析的字符串。

radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

如果省略该参数或其值为 0,则数字将以 10 为基础来解析。

如果它以“0x” 或 “0X” 开头,将以 16 为基数。

如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

上面是封装好一个函数,可以直接调用。

DIV是层叠样式表中的定位技术,全称DIVision,即为划分。有时可以称其为图层。DIV在编程中又叫做整除,即只得商的整数。 DIV元素是用来为HTML(标准通用标记语言下的一个应用)文档内大块(block-level)的内容提供结构和背景的元素。

扩展资料

<div> 是一个块级元素。这意味着它的内容自动地开始一个新行。实际上,换行是 <div> 固有的特定的格式表现。可以通过 <div> 的 class 或 id 应用额外的样式。

不必为每一个 <div> 都加上类或 id,虽然这样做也有一定的好处。

可以对同一个 <div> 元素同时应用 class 和 id 属性,但是更常见的情况是只应用其中一种。这两者的主要差异是,class 用于元素组(类似的元素,或者可以理解为某一类元素),而 id 用于标识单独的特定的元素。

资料来源:百度百科:div

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cufe姐啦
2018-06-28 · TA获得超过6327个赞
知道小有建树答主
回答量:55
采纳率:0%
帮助的人:1.6万
展开全部

运用js获取div宽度,原生JS获取DIV的属性有两种方法,js 获取方法命令如下:

currentStyle和getComputedStyle,前者是兼容IE端的,后者也兼容W3C,两者内核不同,所以就有两种兼容的写法。

如果只是单独的获取某个属性值可以这样写:

obj.currentStyle[属性名];这种不兼容-webkit-内核的,

所以一般是封装成一个函数可以到处调用,而且不止针对某个属性值。

function getStyle(obj,styleName){if(obj.currentStyle){return obj.currentStyle[styleName];}else{return getComputedStyle(obj,null)[styleName];

}

}

上面是封装好一个函数,可以直接调用。

DIV是层叠样式表中的定位技术,全称DIVision,即为划分。有时可以称其为图层。DIV在编程中又叫做整除,即只得商的整数。 DIV元素是用来为HTML(标准通用标记语言下的一个应用)文档内大块(block-level)的内容提供结构和背景的元素。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
懂点君
高粉答主

推荐于2018-02-19 · 分享各种知识,从此让你多懂点,少吃亏!
懂点君
采纳数:197 获赞数:4794

向TA提问 私信TA
展开全部

需要用到getComputedStyle方法和currentStyle对象(为了兼容IE)。

<!-- 结构代码 -->
<div id="h5courseCom">js获取元素的当前宽度</div>
<script type="text/javascript">
    var h5courseEle = document.getElementById('h5courseCom');

    /*
     * 功能:获取渲染后标签的样式,element是标签的对象,property是标签样式属性值
     * 参数:element是元素对象,property是样式属性
     * demo:getStyle(move, "marginLeft");
     * author:HTML5学堂
     */
    function getStyle(element, property){
        var proValue = null;
        if (!document.defaultView) {
            proValue = element.currentStyle[property];
        } else {
            proValue = document.defaultView.getComputedStyle(element)[property];
        }
        return proValue;
    }

    console.log(getStyle(h5courseEle, 'width'));
    alert(getStyle(h5courseEle, 'width'));
</script>

Tips:最终获取出来的值包含了px的单位,可以用parseInt()方法把px单位去除掉,直接获取到数值。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百花丛中一把刀
推荐于2017-11-17 · 超过21用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:41.8万
展开全部
var ele=document.getElementById("这里填写你dom元素的id");
var eleH=ele.clientHeight;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式