編輯
//這將讓指定的元素的實際width
或height
<div id='bodyContent' style="height:600px; width:600px;">
<div style="width:200px; height: 400px; float:left; background-color:pink"></div>
<div style=" margin-left:220px; width:1000px; height:500px; background-color:green; padding:1px;">
<div style="width:200px; height:100px; margin:74px; background-color:lime;"></div>
<div style="width:1200px; height:100px; margin:74px; background-color:lime;">
<!-- Added this element as a check -->
<div style="width:5000px; height:100px; margin:74px; background-color:lime;"></div>
</div>
</div>
</div>
<div id='footerContent' style="min-width:100%; padding:0; background-color:black; height:150px; margin: 100px 0 0 0; position:relative;">
<div id="image" style="width:75px; height:75px; position:absolute; right:37px; bottom: 37px; background-color:yellow;"></div>
</div>
的Javascript
//this returns the actual `width` and `height` of the specified element (excluding `borders`)
function getActualWH(el){
return {aW:el.scrollWidth,aH:el.scrollHeight}
}
//如果你想邊框的寬度包括,比你可以使用我以前的功能之一蒸發散 - >
function getElProps(el,attr){
//checking if the browser is Internet Explorer
isIEX = navigator.userAgent.match(/Trident/);
whaT_ = isIEX ? el.currentStyle : window.getComputedStyle(el);
getWhaT_ = isIEX ? whaT_.getAttribute(attr) : whaT_.getPropertyValue(attr);
return getWhaT_;
}
實施例(無國界):
DEMO
var element = document.getElementById('bodyContent');
width = getActualWH(element).aW;
height = getActualWH(element).aH;
實施例(與邊界):
DEMO
width = getActualWH(element).aW;
borderLeftWidth = parseInt(getElProps(element,'border-left-width'));
borderRightWidth = parseInt(getElProps(element,'border-right-width'));
actualWidth = width + borderLeftWidth + borderRightWidth;
height = getActualWH(document.getElementById('bodyContent')).aH;
borderTopWidth = parseInt(getElProps(element,'border-top-width'));
borderBottomWidth = parseInt(getElProps(element,'border-bottom-width'));
actualWidth = width + borderTopWidth + borderBottomWidth;
此代碼也能在IE8(如果你打算支持它)
bodyContent中的元素是動態生成的,因此在啓動時指定footerContent的寬度是不可能的。現在最小寬度將是可行的,但只有當我可以得到bodyContent的實際寬度。 –
@StoicDeveloper,看到我編輯的答案,並讓我知道它是否適合你。 –
不會。您的結果會獲得600px,而不是基於其內容的1000px。所以,如果我將頁腳設置爲_width,那麼當用戶向右滾動時,頁腳旁邊會有400px的空白。 –