1,一行文字左浮动,一行文字不浮动,二者不会对齐,为什么?
当给文字的容器设置overflow:hidden;二者就对齐了。为什么?
2,代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
.p1{
float: left;
background: green;
}
/*#outer{
overflow:hidden;
}*/
</style>
</head>
<body>
<div id="outer">
<p class="p1">我们都有一个margint-top和margin-bottom20px</p>
<p class="p2">我们都有一个margint-top和margin-bottom20px</p>
</div>
</body>
</html>
3.截图
产生这一现象的原因是浮动元素的外边距不会发生折叠,而普通情况下外边距会发生折叠。
具体到这个例子里面,
p1
是浮动元素,因此不会发生折叠,它会相对父元素的顶部计算外边距;而p2
的外边距会发生折叠,所以它的外边距是相对body
来计算的。而给父元素加上
overflow:hidden
样式之后,父元素就会形成自己的BFC
,因此p2
的外边距不再与body
发生折叠,这时候p1
、p2
的外边距都将相对父元素来计算,因此自然就对齐了。此时的情况如下图所示:而除了
overflow:hidden
之外,还有其他的方法也能让p1
、p2
对齐:p1
添加margin:0
,让p1
没有外边距,自然就不会偏离了outer
添加border
,原理同overflow:hidden