当元素中包含绝对定位的元素时,获取元素的全宽

时间:2012-08-21 04:32:37

标签: javascript jquery html css

JS小提琴:http://jsfiddle.net/meYnS/3/

假设我有一个宽度为100px且.outer的元素position:relative;。它有一个内部元素,position:absolute;left:95px;。即子元素超出了父元素的宽度。

现在,在JQUery中,如果我尝试使用$('.outer').outerWidth();获取父级的宽度,则返回100。

但是如何获得外部元素的整个宽度(显然大于100,因为绝对定位的子元素)?

是否有内置方式或我必须进行手动计算(即将每个子宽度添加到父宽度以计算出整个宽度)?

3 个答案:

答案 0 :(得分:6)

您可以使用属性scrollWidthscrollHeight

如果您使用的是jQuery,

$('.outer').get(0).scrollWidth

答案 1 :(得分:3)

您已将宽度设置为100px且子元素位于绝对位置,因此不会影响其父元素的宽度。父母的宽度仍然是100px。

答案 2 :(得分:0)

jQuery不提供对javascript属性scrollWidth的访问,因此您必须使用jQuery访问DOM元素。

jQuery .get()是一种实现DOM元素的方法。

因此,使用jQuery的解决方案是$('.outer').get(0).scrollWidth

如果您使用原始javascript,则解决方案为document.getElementsByClassName('outer')[0].scrollWidth