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的Border-radius轻松制作圆角
Dec 24 HTML / CSS
CSS3 @font-face属性使用指南
Dec 12 HTML / CSS
CSS3实现时间轴特效
Nov 02 HTML / CSS
HTML5文档结构标签
Apr 21 HTML / CSS
HTML5实现WebSocket协议原理浅析
Jul 07 HTML / CSS
利用HTML5中的Canvas绘制一张笑脸的教程
May 07 HTML / CSS
基于HTML5的齿轮动画特效
Feb 29 HTML / CSS
通过HTML5 Canvas API绘制弧线和圆形的教程
Mar 14 HTML / CSS
使用HTML5 Canvas为图片填充颜色和纹理的教程
Mar 21 HTML / CSS
html5简介_动力节点Java学院整理
Jul 07 HTML / CSS
详解px单位html5响应式方案
Mar 08 HTML / CSS
html5实现输入框fixed定位在屏幕最底部兼容性
Jul 03 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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
城野医生官方海外旗舰店:风靡亚洲毛孔收敛水
2018/04/26 全球购物
员工自我鉴定范文
2013/10/06 职场文书
自我鉴定模板
2013/10/29 职场文书
会计简历自我评价
2015/03/10 职场文书
公司处罚决定书
2015/06/24 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP
总结python多进程multiprocessing的相关知识
2021/06/29 Python
python实现简单的聊天小程序
2021/07/07 Python