如何知道內聯元素的寬度而不添加文檔?內聯元素的寬度
與添加
var span = document.createElement('span');
span.innerHTML = 'Hello, world!';
span.offsetWidth; //0
document.body.appendChild(span);
span.offsetWidth; //70
如何不添加記錄?
對不起,我的英語)
如何知道內聯元素的寬度而不添加文檔?內聯元素的寬度
與添加
var span = document.createElement('span');
span.innerHTML = 'Hello, world!';
span.offsetWidth; //0
document.body.appendChild(span);
span.offsetWidth; //70
如何不添加記錄?
對不起,我的英語)
寬度顯然取決於所使用的樣式(例如字體大小),所以不可能在不知道DOM在哪裏的情況下計算元素的寬度。
如果你不想讓它顯示在屏幕上,你可以將它添加到一些不可見的元素。
你不能得到一個元素的寬度,如果元素本身不是DOM的一部分。
您需要添加它,但你也可以放置它的可視區域之外(使用位置:絕對和負左/頂屬性),並刪除它,一旦你得到了一個元素的寬度
在添加元素之前,無法確定它有多寬,因爲它取決於樣式上下文。
jQuery的width()
方法有一個技巧,它用於display: none
元素,我不知道它是否適用於一個甚至沒有添加到DOM的元素(它通過臨時顯示元素,得到寬度,然後再次隱藏它)。