2012-08-07 223 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的元素(它通過臨時顯示元素,得到寬度,然後再次隱藏它)。