2012-08-07 95 views
0

如何知道内联元素的宽度而不添加文档?内联元素的宽度

与添加

var span = document.createElement('span'); 
span.innerHTML = 'Hello, world!'; 
span.offsetWidth; //0 
document.body.appendChild(span); 
span.offsetWidth; //70 

如何不添加记录?

对不起,我的英语)

回答

1

宽度显然取决于所使用的样式(例如字体大小),所以不可能在不知道DOM在哪里的情况下计算元素的宽度。

如果你不想让它显示在屏幕上,你可以将它添加到一些不可见的元素。

0

你不能得到一个元素的宽度,如果元素本身不是DOM的一部分。

您需要添加它,但你也可以放置它的可视区域之外(使用位置:绝对和负左/顶属性),并删除它,一旦你得到了一个元素的宽度

0

在添加元素之前,无法确定它有多宽,因为它取决于样式上下文。

jQuery的width()方法有一个技巧,它用于display: none元素,我不知道它是否适用于一个甚至没有添加到DOM的元素(它通过临时显示元素,得到宽度,然后再次隐藏它)。