HTML5之高度塌陷问题的解决


Posted in HTML / CSS onJune 01, 2022

所谓的高度塌陷,意即当给子元素设置浮动时,其父元素高度会丢失的情况。通过实际代码进行演示:

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        main {
            width: 100%;
            background-color: #ccc;
        }
        
        .one {
            float: left;
            width: 200px;
            height: 200px;
            background-color: skyblue;
        }
        
        .two {
            float: right;
            width: 200px;
            height: 200px;
            background-color: tomato;
        }
        
        section {
            width: 400px;
            height: 400px;
            background-color: orange;
        }
    </style>
</head>
 
<body>
    <main>
        <div class="one"></div>
        <div class="two"></div>
    </main>
    <section></section>
</body>
 
</html>

初始时的效果,高度出现塌陷,下部的橘色模块会上移。现给出五种解决方案:

HTML5之高度塌陷问题的解决

一、给父元素设置固定高度,虽然简便,但不推荐使用,因为网页的内容是动态变化的,给定高度不利于后期内容增添。

给main父级加上高度,设为200px即可

HTML5之高度塌陷问题的解决

对应运行结果:

HTML5之高度塌陷问题的解决

二、将父元素的overflow设为一个非visible值,适用于子元素未溢出的情形。这里给main设置overflow:hidden,效果同上图一样

HTML5之高度塌陷问题的解决

对应运行结果:

HTML5之高度塌陷问题的解决

三、利用clear属性清除浮动影响。

先于main中添加一个类名为box的空div标签,再于style中设置其clear属性,实现效果同上

HTML5之高度塌陷问题的解决

HTML5之高度塌陷问题的解决

对应运行结果:

HTML5之高度塌陷问题的解决

四、利用after伪类给父级添加一个空块级内容,并设置clear属性

这种方法可以看作是第三种方法的优化,因为一个空标签其实是比较多余的,可以通过after伪类进行添加。添加下图代码后,便能解决问题。

HTML5之高度塌陷问题的解决

对应运行结果:

HTML5之高度塌陷问题的解决

五、直接使用clearfix类,引入以下代码

HTML5之高度塌陷问题的解决

之后向main添加clearfix类即可

HTML5之高度塌陷问题的解决

对应运行结果:

HTML5之高度塌陷问题的解决

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

 
HTML / CSS 相关文章推荐
收集的7个CSS3代码生成工具
Apr 17 HTML / CSS
css3和jquery实现自定义checkbox和radiobox组件
Apr 22 HTML / CSS
纯CSS3实现圆角效果(含IE兼容解决方法)
May 07 HTML / CSS
CSS3实现王者荣耀匹配人员加载页面的方法
Apr 16 HTML / CSS
canvas粒子动画背景的实现示例
Sep 03 HTML / CSS
HTML5的结构和语义(2):结构
Oct 17 HTML / CSS
html5 canvas-2.用canvas制作一个猜字母的小游戏
Jan 07 HTML / CSS
HTML5 自动聚焦(autofocus)属性使用介绍
Aug 07 HTML / CSS
HTML5 Canvas实现烟花绽放特效
Mar 02 HTML / CSS
使用canvas对video视频某一刻截图功能
Sep 25 HTML / CSS
CSS使用Flex和Grid布局实现3D骰子
Aug 05 HTML / CSS
HTML中link标签属性的具体用法
May 07 HTML / CSS
使用CSS实现黑白格背景效果
Jun 01 #HTML / CSS
HTML中实现音乐或视频自动播放案例详解
May 30 #HTML / CSS
CSS文本阴影 text-shadow 悬停效果详解
May 25 #HTML / CSS
HTML页面中使两个div并排显示的实现
May 15 #HTML / CSS
html中相对位置与绝对位置的具体使用
CSS 左边固定宽右边自适应的6种方法
May 15 #HTML / CSS
解决flex布局中子项目尺寸不受flex-shrink限制
May 11 #HTML / CSS
You might like
PHP 编程安全性小结
2010/01/08 PHP
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
解析yii数据库的增删查改
2013/06/20 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
python基于http下载视频或音频
2018/06/20 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
Python3.4解释器用法简单示例
2019/03/22 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
Python中如何引入第三方模块
2020/05/27 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
如何安装ruby on rails
2014/02/09 面试题
夜大毕业生自我评价分享
2013/11/10 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
公司食堂管理制度
2015/08/05 职场文书
2016年万圣节活动总结
2016/04/05 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android