为什么设置子元素浮动后没有出现父元素塌陷?

来源:3-4 编程练习

weixin_慕的地5241954

2019-08-12 05:18:08

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>float演示案例</title>
<style>
*{
margin: 0;
padding: 0}
.container{
width: 790px;
border: 1px dashed gray;
padding:10px;
/*overflow:hidden;
            zoom:1;没有出现父元素塌陷*/
}
div{
width: 240px;
margin: 10px;
border: 1px solid gray;
float: left;
}
p{
margin:5px}
</style>
</head>
<body>
<div class="container">
<div>
<img src="http://climg.mukewang.com/590fe9770001e63102400135.jpg" alt="html">
<p>欢迎来到慕课网学习新知识!</p>
</div>
<div>
<img src=http://climg.mukewang.com/590fe97d00011bda02400135.jpg alt="html">
<p>欢迎来到慕课网学习新知识!</p>
</div>
<div>
<img src=http://climg.mukewang.com/590fe982000150ba02400135.jpg alt="html">
<p>欢迎来到慕课网学习新知识!</p>
</div>
<div>
<img src="http://climg.mukewang.com/590fe9770001e63102400135.jpg" alt="html">
<p>欢迎来到慕课网学习新知识!</p>
</div>
<div>
<img src=http://climg.mukewang.com/590fe97d00011bda02400135.jpg alt="html">
<p>欢迎来到慕课网学习新知识!</p>
</div>
<div>
<img src=http://climg.mukewang.com/590fe982000150ba02400135.jpg alt="html">
<p>欢迎来到慕课网学习新知识!</p>
</div>
</div> 
</body>
</html>


写回答

2回答

好帮手慕码

2019-08-12

同学你好!

是因为div设置样式影响了container:

http://img.mukewang.com/climg/5d5102b8000169c504400092.jpg

这样就出现了父级塌陷的情况:高度22是padding和border撑开的

http://img.mukewang.com/climg/5d5102d7000119f809600452.jpg

http://img.mukewang.com/climg/5d5102fc000114ed03420253.jpg

如果帮助到了你 欢迎采纳 祝学习愉快~

1
heixin_慕的地5241954
h 那是不是以后只要设置了 margin和padding就没有父元素的塌陷,就不用清除浮动了?
h019-08-12
共1条回复

好帮手慕码

2019-08-13

同学你好!

margin是无法撑开一定的高度的,它是外边距:

http://img.mukewang.com/climg/5d521136000195ba16180820.jpg

padding和border才可以撑开一定的高度,但是这不是父级的高度。父级的高度是包含了子级元素的高度的,所以父级的高度其实还是塌陷的。

http://img.mukewang.com/climg/5d52120a0001ac7511200463.jpg

所以呢 同学说的不成立,建议清除父元素塌陷还是使用overflow:hidden;

如果帮助到了你 欢迎采纳 祝学习愉快~

0

0 学习 · 40143 问题

查看课程