CSS浮动引起的高度塌陷问题


Posted in HTML / CSS onAugust 05, 2022

正常页面布局

<style>
        *{
            margin:0;
            padding: 0;
        }
        .content{
            width:400px;
            border:1px solid #000;
            
        }
        .box{
            width:200px;
            height:200px;
            background: greenyellow;
            
        }
    </style>

<body>
    <div class="content">
        <div class="box"></div>
    </div>
    <p>基苦阿斯蒂芬</p>
</body>

CSS浮动引起的高度塌陷问题

当给类名为.box的盒子加上浮动后

<style>
        *{
            margin:0;
            padding: 0;
        }
        .content{
            width:400px;
            border:1px solid #000;
            
        }
        .box{
            width:200px;
            height:200px;
            background: greenyellow;
            float: left;
            
        }
    </style>

CSS浮动引起的高度塌陷问题

可以看到页面布局已经乱了,因为元素设置浮动后会脱离文档流

解决方案

1 利用BFC(给父元素加上overflow:hidden)

**缺点:父元素溢出的元素会隐藏,可能会影响页面显示 **

.content{
            width:400px;
            border:1px solid #000;
            overflow: hidden;
            
        }

2 加空div

要点:
1.加上一个空的块级元素
2.对块级元素进行清除浮动, 省事方法,不管理是左浮还是右浮,直接全清(clear:both)

<style>
        *{
            margin:0;
            padding: 0;
        }
        .content{
            width:400px;
            border:1px solid #000;
            /* overflow: hidden; */
            
        }
        .box{
            width:200px;
            height:200px;
            background: greenyellow;
            float: left;
            
        }
        .clear{
            clear: both;
        }
    </style>
    
<body>
    <div class="content">
        <div class="box"></div>
        <div class="clear"></div>
    </div>
    <p>基苦阿斯蒂芬</p>
</body>

3 利用伪元素

要点:
1 其实和加空div的原理是一致的,唯一要记住的就是把伪元素转为块级元素(display:block),否则会没有效果
2 还有伪元素的属性不要忘记加上(content:‘’)

<style>
        *{
            margin:0;
            padding: 0;
        }
        .content{
            width:400px;
            border:1px solid #000;
            /* overflow: hidden; */
            
        }
        .content::after{
            content: '';
            display: block; // 必须要转换为块元素
            clear: both;
        }
        .box{
            width:200px;
            height:200px;
            background: greenyellow;
            float: left;
            
        }
        /* .clear{
            clear: both;
        } */
    </style>

<body>
    <div class="content">
        <div class="box"></div>
        <!-- <div class="clear"></div> -->
    </div>
    <p>基苦阿斯蒂芬</p>
</body>

到此这篇关于CSS浮动引起的高度塌陷问题的文章就介绍到这了,更多相关CSS浮动高度塌陷内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
CSS3实现多背景展示效果通过CSS3定位多张背景
Aug 10 HTML / CSS
CSS3中颜色线性渐变实战
Jul 18 HTML / CSS
css3针对移动端卡顿问题的解决(动画性能优化)
Feb 14 HTML / CSS
canvas粒子动画背景的实现示例
Sep 03 HTML / CSS
HTML5 拖拽批量上传文件的示例代码
Mar 28 HTML / CSS
HTML5 语音搜索只需一句代码
Jan 03 HTML / CSS
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
Jan 31 HTML / CSS
如何让IE9以下版本(ie6/7/8)认识html5元素
Apr 01 HTML / CSS
Canvas制作旋转的太极的示例
Mar 09 HTML / CSS
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
May 26 HTML / CSS
详解HTML5中CSS外观属性
Sep 10 HTML / CSS
html5移动端禁止长按图片保存的实现
Apr 20 HTML / CSS
使用CSS实现六边形的图片效果
Aug 05 #HTML / CSS
el-form每行显示两列底部按钮居中效果的实现
Aug 05 #HTML / CSS
纯CSS打字动画的实现示例
Aug 05 #HTML / CSS
新的CSS 伪类函数 :is() 和 :where()示例详解
前端使用svg图片改色实现示例
Jul 23 #HTML / CSS
详解flex:1什么意思
Jul 23 #HTML / CSS
CSS子盒子水平和垂直居中的五种方法
Jul 23 #HTML / CSS
You might like
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
javascript 操作文件 实现方法小结
2009/07/02 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
python检测IP地址变化并触发事件
2018/12/26 Python
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
应届本科生推荐信范文
2013/12/25 职场文书
高中军训感言800字
2014/03/05 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
出生医学证明书
2014/09/15 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
世界气象日活动总结
2015/02/27 职场文书
农村党支部承诺书
2015/04/30 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript