博主信息
博文 28
粉丝 0
评论 1
访问量 27886
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
浮动元素高度塌陷产生的原因与解决方案
南宫
原创
1184人浏览过

原因:

元素浮动后,就不在整个文档流的管辖范围,那么它之前存在在父元素内的高度就随着浮动不复存在了,而此时父元素会默认自己里面没有任何内容。

解决方案

  1. <div class="container">
  2. <div class="item">1</div>
  3. <div class="item">2</div>
  4. <div class="item">3</div>
  5. </div>

伪元素解决:

  1. .container {
  2. border: 3px dashed red;
  3. }
  4. .item {
  5. width: 150px;
  6. height: 150px;
  7. }
  8. .item:first-of-type {
  9. background-color: lightgreen;
  10. }
  11. .item:nth-last-of-type(2) {
  12. background-color: lightcoral;
  13. }
  14. .item:last-of-type {
  15. background-color: lightskyblue;
  16. }
  17. .item {
  18. float: left;
  19. }
  20. .container::after {
  21. content: "";
  22. display: block;
  23. clear: both;
  24. }

最简单的解决方案,用到BFC(块级格式化上下文):

  1. .container {
  2. border: 3px dashed red;
  3. }
  4. .item {
  5. width: 150px;
  6. height: 150px;
  7. }
  8. .item:first-of-type {
  9. background-color: lightgreen;
  10. }
  11. .item:nth-last-of-type(2) {
  12. background-color: lightcoral;
  13. }
  14. .item:last-of-type {
  15. background-color: lightskyblue;
  16. }
  17. .item {
  18. float: left;
  19. }
  20. /* .container::after {
  21. content: "";
  22. display: block;
  23. clear: both;
  24. } */
  25. .container {
  26. overflow: auto;
  27. }
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:元素浮动后, 其实只是半脱离文档流, 仍然受到浮动元素前面元素的影响 , 它也只是影响到了它后面元素的排列而已
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学