CSS关于子元素设置了float属性后父元素高度为0的解释和解决方法_html/css_WEB-ITnose

 1  2  3  4   5  test1 6   7  #container { 8  background-color: #f1f1f1; 9  width: 80%;10  margin: 20px auto;11  }12  .item {13  float: left;14  color: white;15  text-shadow:0 1px black;16  margin: 10px 20px;17  padding: 20px;18  }19  #container > .item:nth-child(1) {20  background-color: #F00080;21  }22  #container > .item:nth-child(2) {23  background-color: #D8AAD8;24  }25  #container > .item:nth-child(3) {26  background-color: #A2aa5A;27  }28  #container > .item:nth-child(4) {29  background-color: #63B8FF;30  }31  32 33 34 
35
36 No.137
38
39 No.240
41
42 No.343
44
45 INo.446
47
48 49

登录后复制

代码运行结果:


我们发现父元素根本没有高度(审查元素可以看出父元素div#container的高度=0)
分析:
浮动float属性会使得元素脱离当前HTML文档流,那么会使得:当前HTML文档会当作设置float属性的元素不存在一样。那么,由于这5个子元素都设置了float,所以可以看作父元素#container内根本没有内容,div在没内容的时候表现正好是高度=0.
解决方法:

1、设置父元素float
例如:

1 #container {2 background-color: #f1f1f1;3 width: 80%;4 margin: 20px auto;5 float: right;6 } 

登录后复制

2、在最后一个设置浮动的子元素后加一个空div ,并且让这个div清除浮动。

例如:

立即学习“前端免费学习笔记(深入)”;

1 
2 .items {clear: both;}

登录后复制

3、父元素设置overflow:hidden;

4、不要用浮动,而使用:子元素使用display:inline-table或者display:inline-block

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3104081.html

(0)
上一篇 2025年3月29日 08:24:01
下一篇 2025年2月27日 15:31:56

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论