offsetWidth
對我來說不夠好,因爲這包括填充和邊框寬度。我想找出元素的內容寬度。是否有一個屬性,或者我必須採取offsetWidth,然後從計算的樣式中減去填充和邊框寬度?獲取元素的內容寬度
回答
我建議要麼scrollWidth
要麼clientWidth
取決於你是否要考慮滾動條。
退房Determining the dimensions of elements或specification itself。
對不起,這兩個似乎都給與'offsetWidth'相同。 –
那些包括填充。 –
這聽起來對我來說就像你想在元素上使用getComputedStyle
。你可以看到getComputedStyle
與offsetWidth
這裏的一個例子:http://jsbin.com/avedut/2/edit
或者:
window.getComputedStyle(document.getElementById('your-element')).width;
當然,如果我設置'box-sizing:border-box',這當然會失敗;) –
哦,還有另外一件事,我特意在我的問題中給出了這個選項。我正在尋找另一個。 –
這從一開始就是重要的一點。 ;在這種情況下,是的:我認爲你需要做一些減法。我爲jsbin添加了一個'getWidth':http://jsbin.com/avedut/6/edit(以及它在那裏措辭的方式讓我有點絆倒了,抱歉) – founddrama
由於這個谷歌搜索,但沒有一個合適的答案然而,當第一次出現,這是一個:
function getContentWidth (element) {
var styles = getComputedStyle(element)
return element.clientWidth
- parseFloat(styles.paddingLeft)
- parseFloat(styles.paddingRight)
}
基本上,我們首先得到元素的寬度,包括填充(clientWidth
),然後減去填充左側和右側。我們需要parseFloat
這些填充,因爲它們是px
- 帶有字符的字符串。
我在jsFiddle上爲此創建了一個小操場,請查看!
- 1. 獲取元素的寬度和高度
- 2. 獲取未顯示元素的子元素的寬度/高度
- 3. 獲取現有td元素的寬度
- 4. Javascript:獲取子元素的寬度
- 5. 獲取元素的實際寬度?
- 6. Javascript:獲取img元素的寬度
- 7. 獲取元素的實時寬度
- 8. 獲取DOM元素的寬度?
- 9. 內聯元素的寬度
- 10. 獲取自動寬度元素的寬度
- 11. 如何獲取寬度元素的寬度響應或自動
- 12. 如何獲取iframe內容寬度?
- 13. 獲取寬度$ .find()元素爲零
- 14. SVG獲取文本元素寬度
- 15. JQuery在PX中獲取元素寬度
- 16. While循環獲取元素寬度
- 17. 寬度內聯元素
- 18. Safari獲取%寬度錯誤的內嵌塊浮動元素
- 19. 獲取此元素的HTML元素的寬度
- 20. 改變僞元素的寬度和高度與內容
- 21. 如何獲取html內容寬度不是窗口寬度
- 22. Chrome使用動態內容摺疊內聯元素的寬度
- 23. 我的jQuery採取寬度和元素的高度,它加載內容
- 24. 獲取文本xml元素的內容
- 25. 如何獲取HTML元素的內容
- 26. SAX:如何獲取元素的內容
- 27. 如何使外部元素的寬度與其內容的寬度相匹配?
- 28. 獲取元素的內部高度
- 29. 內嵌塊元素寬度是否通過其內容設置?
- 30. 如何限制內嵌塊元素內的子元素寬度?
沒有jQuery,但即使使用jQuery,也不會。 –