[英]Get width in pixels from element with style set with %?
我有這個元素:
<div style="width: 100%; height: 10px;"></div>
我想得到它的寬度(以像素為單位)。 我剛試過這個:
document.getElementById('banner-contenedor').style.width
返回100%
。 是否可以使用 JavaScript 實際獲取元素的像素寬度?
document.getElementById('banner-contenedor').clientWidth
您想要獲得計算出的寬度。 嘗試: .offsetWidth
(即: this.offsetWidth='50px'
或var w=this.offsetWidth
)
您可能也喜歡這個關於 SO 的答案。
沒有一個答案能滿足普通 JS 中的要求,我想要一個普通的答案,所以我自己做了。
clientWidth 包括填充,而 offsetWidth 包括其他所有內容( jsfiddle 鏈接)。 您想要的是獲得計算樣式( jsfiddle 鏈接)。
function getInnerWidth(elem) {
return parseFloat(window.getComputedStyle(elem).width);
}
編輯: getComputedStyle
是非標准的,可以以像素以外的單位返回值。 如果元素有一個滾動條,一些瀏覽器也會返回一個值,該值將滾動條考慮在內(這反過來又給出了與 CSS 中設置的寬度不同的值)。 如果元素有滾動條,則必須通過從offsetWidth
中刪除邊距和填充來手動計算寬度。
function getInnerWidth(elem) {
var style = window.getComputedStyle(elem);
return elem.offsetWidth - parseFloat(style.paddingLeft) - parseFloat(style.paddingRight) - parseFloat(style.borderLeft) - parseFloat(style.borderRight) - parseFloat(style.marginLeft) - parseFloat(style.marginRight);
}
盡管如此,根據我目前的經驗,這可能不是我推薦的答案,我會求助於使用不太依賴 JavaScript 的方法。
試試 jQuery:
$("#banner-contenedor").width();
yourItem.style['cssProperty']
這樣你就可以動態調用屬性字符串
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.