【发布时间】:2015-12-29 06:13:10
【问题描述】:
我有这个代码:
<div class='block'>
<div class='container'></div>
</div>
.block {
display: block;
height: 100px;
width: 100px;
background: black;
}
.container {
display: block;
width: 30px;
height: 30px;
background: red;
margin: 50px;
}
我不明白为什么margin 在块内不起作用?
JsFiddle:https://jsfiddle.net/39yy7a0q/
【问题讨论】:
-
边距有效,但您正在试验 CSS 的边距折叠功能。您可以解决定义边框或填充的此类问题。看到这个小提琴:jsfiddle.net/39yy7a0q/7 .block { display: block;高度:100px;宽度:100px;背景:黑色;边框:1px纯黑色; }
-
jsfiddle.net/39yy7a0q/8 developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/… 如果您需要原因(并且您已经问过“为什么”)-请查看这篇文章....
-
您可以将
.block溢出设置为隐藏或添加一个小填充。 jsfiddle.net/39yy7a0q/10 -
问题是你的容器类的显示属性。 INLINE-BLOCK 设置为 inline-block 的元素与 inline 非常相似,因为它将设置为与文本的自然流(在“基线”上)内联。不同之处在于您可以设置将受到尊重的宽度和高度。 DISPLAY:BLOCK 它们通常是容器元素。还有像
和
这样的文本“块”。块级元素不是内联的,而是突破它们。默认情况下(不设置宽度),它们尽可能多地占用水平空间。演示:jsfiddle.net/39yy7a0q/11