width这样读取出来是一个字符串,并且带有单位,但是offsetwidth返回的是一个数值。...

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset=" utf-8">
 5     <title>未定义</title>
 6     <style type="text/css">
 7         div{
 8             width:100px;
 9             height:100px;
10             border:5px solid red;
11             background-color:green;
12             padding:3px;
13         }
14     </style>
15     <script type="text/javascript">
16         window.οnlοad=function(){
17             var _mytest=document.getElementById("mytest");
18             console.log("fsfs"+document.getElementById("mytest").offsetWidth);
19             console.log("aa"+document.getElementById("mytest").style.width)
20         }
21     </script>
22 </head>
23 <body>
24 <div id="mytest"></div>
25 </body>
26 </html>

,offsetWidth属性可以返回div的宽度,但是style.width并不能够返回此div的宽度。(因为在js中不能直接把获取写在样式表中的样式)
由运行结果也可以看出offsetWidth返回的宽度值包括:border+width+padding

但是如果把样式加载行内,就可以读取到了

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <script>
 7         window.οnlοad=function()
 8         {
 9             var oDiv=document.getElementById('div1');
10             var a=oDiv.style.width;
11             alert(typeof a);
12             alert(a);
13         }
14     </script>
15 </head>
16 <body>
17 <div id="div1" style="width:200px"></div>
18 </body>
19 </html>

width这样读取出来的不是一个数值,而是一个字符串,并且带有单位,但是offsetwidth返回的是一个数值。

这应该是两者在本质上的一个区别,还有在网上之前又看到过一种说法:
object.offsetLeft代表是当前object和父元素已经定义好的左边距。
object.style.left代表是object和父元素需要定义的左边距

不知道可不可以这样理解:offsetLeft是已经有的值,而left是需要计算的值,因此在运动框架的联系中经常看到的是将offsetLeft的值赋给left~~~

接下来一张图说明两者表象上的区别:

转载于:https://www.cnblogs.com/daicygo/p/6289751.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值