2012-02-22 99 views
5

基本上我有一個div,我想在100%的寬度。但是,我也希望它有一些填充。但是當我添加填充時,寬度被添加到它,這意味着我的div現在脫離屏幕並且有一個水平滾動條。填充/邊距寬度設置?

通常情況下,我只是讓div的百分比較低(如95%或90%)。

我想知道是否有更優雅的方法來處理這種情況?

回答

3

嘗試填充設置爲5%和寬度的90%(100-5x2)

9

看一看box-sizing

.example { 
    -moz-box-sizing: border-box; 
    -webkit-box-sizing: border-box; 
    box-sizing:  border-box; 
} 

默認情況下,元素的寬度是根據其內容框來計算的。所以應用的填充被添加到寬度。如果將框模型更改爲border-box,則寬度中將包含填充。爲了兼容看看caniuse.com

+0

有趣。只是一個觀察,但似乎沒有任何保證金。 – Johannes 2012-02-22 07:31:04

+0

我認爲,邊緣被認爲是在元素之外,因此不是任何盒子模型的一部分。 – Sirko 2012-02-22 07:32:23

+1

不要脫離Vijay,但我認爲這是普遍的答案,尤其是當你不知道表中有多少個細胞時。 – Shane 2012-11-22 14:50:04

0

有四個重要的事情涉及到CSS盒模型。 ⅰ)保證金 II)邊界 ⅲ)填充 ⅳ)內容

當我們設定寬度那麼我們基本上設定內容的寬度,以便增加填補裝置寬度的整體增加。

請通過以下資源,你會知道一切。

http://www.w3.org/TR/CSS2/box.html

http://css-tricks.com/the-css-box-model/

你可以使用%或者即使你計算像素寬度是否正確,您還設立邊界,甚至要設置頁邊距處理這種情況。

element{ 
    width: 96%; 
    padding: 0 2%; 
} 
0

缺省情況下一個div是width: auto其中(假設正常定位,顯示和缺乏浮動的)將導致它來填充它的容器(佔空間,填充和邊框)。

只需將它留在width: auto而不是設置顯式寬度或百分比寬度。

+0

只適用於默認爲100%的元素,如'div's。你不能對'input'等其他元素或默認情況下不會擴展到100%的任何元素執行相同的操作。 – 2013-05-08 21:19:50

+0

由於問題一再提到div,這不是問題。 – Quentin 2013-05-08 21:55:52