2011-05-13 295 views
2

瀏覽器具有HTML頁面的默認填充。 例如,我的FF默認設置了8px的body元素邊距。 我可以計算默認寬度填充使用瀏覽器默認填充

jQuery(window).width() - jQuery('body').innerWidth(); 

由於體內元素HTML頁面跨越所有可用的瀏覽器窗口的寬度。
另外我有其他瀏覽器設置寬度和高度填充不同的值。
你能提出計算高度填充的方法嗎?
由於身體內部高度將返回實際頁面內容高度,並且不會跨越所有可用高度,因此以前的代碼不起作用。

回答

3

你真的需要計算填充嗎?填充是在元素的css設置中爲填充和邊距定義的。

您可以在jQuery中輕鬆獲得這些:

// Select the body element. 
var bodyElement = $('body'); 

// Get the paddings 
var widthPadding = bodyElement.css('padding-left') + bodyElement.css('padding-right'); 
var heightPadding = bodyElement.css('padding-top') + bodyElement.css('padding-bottom'); 

// Get the margins 
var widthMargin = bodyElement.css('margin-left') + bodyElement.css('margin-right'); 
var heightMargin = bodyElement.css('margin-top') + bodyElement.css('margin-bottom'); 

您可以刪除默認的用戶代理(即瀏覽器)在你的CSS文件中定義的設置:

body { 
    margin: 0; 
    padding: 0; 
} 
+0

我以前檢查過jQuery('body').css('margin'),但它對我返回0。你的jQuery('body').css('margin-left')返回8px。工作,謝謝。奇怪,因爲我... – 2011-05-13 20:47:37

+0

原因是,邊緣可以是一個值列表,例如:'「10px 0 20px 30px」'(指定頂部,右側,底部和左側)。如果你只是想要一個特定的值,可以使用'margin-xxx'或'padding-xxx',其中'xxx'是'top','right','bottom'或'left'。 – Spoike 2011-05-13 20:57:50

3

繞過問題並使用CSS reset

如果重置良好,您將不必計算這些值,因爲它們將由您自己設置。

+0

我發展第三方庫,這將被視爲不良副作用。 – 2011-05-13 20:39:51

+0

@Mykhaylo Adamovych - 這是你應該在你的問題中提出的那種細節。 – Oded 2011-05-13 20:41:53