我无法弄清楚造成这种情况的原因。正如您在here (JSFiddle)中看到的那样,当我添加overflow:hidden(或display:inline-block或float:left)时,它似乎会向向下移动的段添加顶部和底部填充。有人可以解释一下造成这种情况的原因吗?
.container{
background-color: blue;
width: 200px;
height:200px;
float: left;
margin: 0.5%;
overflow: hidden;
}
.problem{
background-color: rgba(52, 152, 219, 0.8);
width: 100%;
height: 15%;
font-size: 120%;
color:white;
margin-top: 55%;
overflow: hidden;
vertical-align:bottom;
}

<div class="container">
<div class="problem"><p>text</p></div>
</div>
&#13;
答案 0 :(得分:3)
在您的示例中,您将看到折叠边距和块格式上下文的效果。
将overflow: hidden
属性添加到.problem
时,该元素会建立一个新的块格式化上下文。
因此,子p
元素的默认边距被限制在其中
父元素的边缘。
如果没有overflow: hidden
属性,则p
元素的边距会崩溃
与母公司55%的差距。
有关块格式化上下文的更多信息,请参阅:
中的CSS2规范答案 1 :(得分:1)
大多数浏览器都会自动包含一些CSS。
添加此项以清除默认的段落边距:
p { margin:0px; }
http://jsfiddle.net/stsrjnxk/16/
有关详情,请参阅Google:CSS重置