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 相关文章推荐
CSS3教程(10):CSS3 HSL声明设置颜色
Apr 02 HTML / CSS
CSS改变网页中鼠标选中文字背景颜色例子
Apr 23 HTML / CSS
网页切图的CSS和布局经验与要点
Apr 09 HTML / CSS
CSS3 2D模拟实现摩天轮旋转效果
Nov 16 HTML / CSS
CSS3制作圆形滚动进度条动画的示例
Nov 05 HTML / CSS
css3 实现滚动条美化效果的实例代码
Jan 06 HTML / CSS
谈一谈HTML5本地存储技术
Mar 02 HTML / CSS
整理HTML5移动端开发的常用触摸事件
Apr 15 HTML / CSS
HTML5制作表格样式
Nov 15 HTML / CSS
canvas探照灯效果的示例代码
Nov 30 HTML / CSS
HTML5自定义mp3播放器源码
Jan 06 HTML / CSS
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
Apr 29 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中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
php中error与exception的区别及应用
2014/07/28 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
JavaScript实现网站访问次数统计代码
2015/08/12 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
前端弹出对话框 js实现ajax交互
2016/09/09 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
[02:57]2014DOTA2国际邀请赛-观众采访
2014/07/19 DOTA
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
[01:10:49]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
python调用摄像头显示图像的实例
2018/08/03 Python
python实现排序算法解析
2018/09/08 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
Django实现基于类的分页功能
2019/10/31 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
模范教师材料大全
2014/12/16 职场文书
护士自荐信怎么写
2015/03/06 职场文书
单位推荐信范文
2015/03/27 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
法院答辩状格式
2015/05/22 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫