2012-04-06 149 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