2012-04-06 148 views
32

我已經搜索了一個答案,但找不到它的任何地方。我的問題很簡單:我的背景顏色是我的身材,然後有很大的餘量,現在我想要的不同背景顏色的邊距。CSS:邊緣內只有背景顏色

我該如何做到這一點與CSS?

+1

你** **僅具有背景_inside的margin_。框模型:http://www.w3.org/TR/CSS2/box.html – c69 2012-04-06 20:22:00

+2

如果你使用填充而不是邊距,它會有你選擇的元素背景色 – bevacqua 2012-04-06 20:32:29

回答

36

如果您的頁邊距設置在身上,然後設置HTML標籤的背景顏色應顏色的邊緣區域

html { background-color: black; } 
body { margin:50px; background-color: white; } 

http://jsfiddle.net/m3zzb/

或者作爲dmackerman建議,將邊距設置爲0,但邊框的大小要設置邊距顏色並設置邊框顏色

+0

謝謝,完美的工作 – stackunderflow 2012-04-06 20:34:22

+0

或在'body'內放置'div' #main_container來做同樣的事情 – 2012-04-06 20:36:16

+0

如果你的HTML標籤的背景顏色是白色以外的任何顏色,當頁面首次加載時,顏色佔用整個頁面一秒鐘,在身體的顏色開始前,所以它看起來很奇怪。 – frosty 2015-07-24 18:24:38

0

這是不可能的杜盒模型。 但是,您可以使用css3的邊框圖像或通用css中的邊框顏色的解決方法。

但是我不確定您是否可能在重置時遇到問題。某些瀏覽器確實也爲html設置了一個頁邊距。請參閱Eric Meyers重置CSS以獲取更多信息!

html{margin:0;padding:0;} 
10

而不是使用保證金,你可以使用邊框?無論如何,你應該用<div>來做到這一點。

這樣的事情? enter image description here

http://jsfiddle.net/GBTHv/

+0

嗨,我已經做了類似的事情,但邊框內的背景顏色只能擴展到邊距內文字的底部。我需要它在整個邊緣區域內。如果這是有道理的。 – stackunderflow 2012-04-06 20:28:02

+0

@ user1318194 - 我認爲您對保證金的含義有些困惑。保證金是元素周圍的區域,所以像上面這樣的邊框就是保證金。 – 2012-04-06 20:34:50

+0

是的,但有邊距,你可以通過百分比來設置邊界 - 你不能。所以,如果你想在左右邊緣留出1%的邊際,你將無法用邊界做到這一點。 – frosty 2015-07-24 18:23:26

3

我需要類似的東西,並使用了上來:之前(或:after)僞類:

#mydiv { 
    background-color: #fbb; 
    margin-top: 100px; 
    position: relative; 
} 
#mydiv:before { 
    content: ""; 
    background-color: #bfb; 
    top: -100px; 
    height: 100px; 
    width: 100%; 
    position: absolute; 
} 

JSFiddle