如何在没有填充区域的情况下为div设置背景


72

我在CSS上有这个课程:

.mgmtError{ 
  width:716px; 
  float:left; 
  background-color:#FF0000; 
  padding:10px; 
  text-align:center;
} 

并且我想给背景颜色不填充区域。我尝试使用margin,但似乎在使用IE时遇到了一些麻烦。

还有其他解决方案吗?


2
您可以显示HTML标记吗?
Egor4eg 2011年

1
填充区域是DIV的一部分,因此您不能说“在DIV的一部分中具有背景A,而在同一DIV的其他部分中具有背景B”。
影子向导

使用保证金时IE有什么问题?
DanielB

@DanielB:有时,如果没有下一个float元素,margin-bottom将会失败;我认为这是一个普遍的问题...
kwichz

我想您可以在div中使用div来模拟填充,而较大的div没有颜色
显得比较矮

Answers:


12

如果您能够访问HTML,请尝试:

.mgmtError {
  width: 716px;
  float: left;
  padding: 10px;
  text-align: center;
  background-color: blue;
}

.mgmtError div {
  background-color: #FF0000;
}
<div class="mgmtError">
  <div>Content</div>
</div>


3
下面的@Yacine回答似乎更好。
Zia Ul Rehman Mughal

394

您可以使用

background-clip: content-box;

还要确保使用background-color属性而不是background


3
这是css3,在9.0之前的IE上无法使用,为什么不能使用margin而不是padding?
BritishSam 2015年

这是一个很好的解决方案。但是当您使用时background-image: linear-gradient(),不能使用百分比色标。我认为它很明显,因为它是内容裁剪,但我尝试了一段时间
朱利安·F·韦纳特

我找到了一个解决方案background-origin: content-box
朱利安·F·韦纳特

3
我不明白,每个人都说“辉煌”,超过200 +1,但这对我不起作用。有任何想法吗?填充和背景出现在同一个颜色
吉尔Epshtain

@GilEpshtain您可以通过jsfiddle提供MCVE吗?否则,您的评论用处不大。
Mark Amery
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.