如何测量DOM节点的维度'的JavaScript内容区
How do I measure the dimensions of a DOM node's content area with JavaScript?
我需要计算DOM节点的宽度和高度,使其不包括Padding、Margin和Border宽度,即;内容区域的宽度和高度。目前,我已经尝试了clientWidth和clientHeight,但维度与实际的DOM节点不相等。计算内容区域维度的最佳方法是什么?
clientWidth
和clientHeight
是最好的方法,但您需要减去填充。
所以为了得到宽度,你可以做elem.clientWidth - elem.paddingLeft - elem.paddingRight
。
以下是一些关于确定尺寸的文档:https://developer.mozilla.org/en-US/docs/Determining_the_dimensions_of_elements
从计算的角度来看,@jordan所说的从clientWidth中消除左填充和右填充将给出内容区域的实际大小。但问题是,如果样式是通过外部样式表设置的,则无法通过elem.style.paddingLeft和elem.style.paddingRight获取padding left和right的值。
以下是在读取外部样式表后,获取浏览器在节点上应用的填充实际值的方法:
var node = document.getElementById("nodeid");
alert("Padding Left before computed style: " + node.style.paddingLeft);
var st = window.getComputedStyle(node);
alert("Padding Left after computed style: " + st.paddingLeft);
注意:如果节点样式使用style属性,则elem.style.paddingLeft将不起作用!
相关文章:
- 什么'这个javascript闭包的区别是什么
- 这两种风格在Javascript中编写函数的区别是什么
- 在mongodb中使用javascript来区分列
- JavaScript-What'匿名函数和普通代码之间的区别是什么
- 节点模块和常规javascript文件之间的区别是什么
- JavaScript和jQuery之间的区别是什么
- 什么'在javascript中将新方法添加到对象中的区别是什么
- 两个代码之间的区别是什么(javascript的循环)
- JavaScript 作用域和 Angular JS 作用域之间的区别是什么?
- 在 JavaScript 中实现具有容差的二叉搜索
- 为什么我的拖放区 JavaScript 表单不起作用
- javascript中的函数定义.但实际的区别是什么呢
- TypeScript/JavaScript中的模块和命名空间之间的区别是什么
- 如何测量DOM节点的维度'的JavaScript内容区
- JavaScript正则表达式中type=number和type=text之间的区别是什么
- 在PHP函数中放置Javascript广告区
- PHP正则表达式和javascript正则表达式之间的区别是什么
- 将结果变量保留在for循环之外(Javascript)的区别是什么?
- HTML5和Javascript的区别是什么?
- Javascript和Adobe Javascript的区别是什么?