JavaScript中的offsetLeft以及obj.style.left
来源:互联网 发布:网络维护公司 编辑:程序博客网 时间:2024/06/01 08:46
1, offsetLeft 获取的是相对于父对象的左边距;
2, left 获取或设置相对于具有定位属性(position定义为relative)的父对象 的左边距;
下面看看一些例子
<!DOCTYPE html><html><head> <title></title> <style type="text/css"> * { margin: 0; padding: 0; } #div1 { width: 100px; height: 100px; background: red; position: absolute; } </style></head><body> <div id="div1"></div> <script type="text/javascript"> function getStyle(obj, attr) { if (obj.currentStyle) {//IE return obj.currentStyle[attr]; } else { return getComputedStyle(obj, null)[attr]; } } var oDiv = document.getElementById('div1'); console.log('getStyle("left") = ' + getStyle(oDiv, 'left')); console.log('offsetLeft = ' + oDiv.offsetLeft); </script></body></html>
结果:oDiv.style.left = 0px , oDiv.offsetLeft = 0
#div1 { width: 100px; height: 100px; background: red; position: absolute; border: 3px solid black;}
结果:oDiv.style.left = 0px , oDiv.offsetLeft = 0
#div1 { width: 100px; height: 100px; background: red; position: absolute; border: 3px solid black; padding: 14px;}
结果:oDiv.style.left = 0px , oDiv.offsetLeft = 0
#div1 { width: 100px; height: 100px; background: red; position: absolute; border: 3px solid black; padding: 14px; margin-left: 24px;}
结果:oDiv.style.left = 0px , oDiv.offsetLeft = 24
可见,offsetLeft是考虑到了margin-left了,因为margin-left,div确实在左边空出了24px的空间,但是style.left不管,style.left只看样式表中的left,其他的不管,就像前文中讲到的offsetWidth, offsetWidth不仅仅考虑到样式表中的width,更是考虑到padding和border,如下:
offsetWidth = width + padding + border;
#div1 { width: 100px; height: 100px; background: red; position: absolute; border: 3px solid black; padding: 14px; margin-left: 24px;}
结果:oDiv.style.width = 100px , oDiv.offsetWidth = 134 (100+3+3+14+14)
可见style.left得到的是字符串,带单位,而offsetLeft得到的是数字;
写在CSS样式里的width等样式你直接用style.width是获取不到的,但是用offsetWidth可以;
style.left可读可写,但是offsetLeft可读不可写;
1 0
- JavaScript中的offsetLeft以及obj.style.left
- obj.offsetLeft和obj.style.left区别
- 关于JS下offsetLeft,style.left,以及jquery中的offset().left,css("left")的区别。
- js中的scrollleft、style.left、clientLeft、offsetLeft
- offsetLeft和style.left
- javascript中style.left和offsetLeft的使用
- javascript中style.left和offsetLeft的用法说明
- javascript之style.left和offsetLeft的区别
- offsetLeft与style.left区别
- offsetLeft与style.left的区别
- offsetLeft与style.left的区别
- offsetLeft和style.left的区别
- offsetLeft与style.left的区别
- offsetLeft与style.left的区别
- offsetLeft和style.left的区别
- offsetLeft与style.left的区别
- offsetLeft与style.left的区别
- offsetleft和style.left的区别
- pyhton获取 中国各个省份/直辖市拥有的上市公司数目
- Ubuntu 下vpn搭建过程
- 信息安全工程师 学习笔记(二十一)
- 记录ssh-keygen
- windows上自动设置java环境变量的脚本
- JavaScript中的offsetLeft以及obj.style.left
- dubbo通信协议之对比
- 关于文件输出空字符问题(C语言)
- 健身健美减脂、脱水、充碳记录
- 设计模式之中介者模式
- 记安卓中倒计时代码
- java Web 文件断点续传
- 你是如何看待5月12号爆发的在各高校电脑勒索比特币的病毒WannaCry?
- 信息安全工程师 学习笔记(二十二)