前言:

    当不给父元素设置宽高时,父元素的宽高会被子元素的内容撑开。但当子元素设置浮动属性(float) 后,

     子元素会溢出到父元素外,父元素的宽高也不会被撑开,这称之为“高度塌陷”。可以理解为使用浮动后的副作用

    

    那什么是高度塌陷呢?比如下面截图,box1和box2的外层(这里外层指下图箭头所指的紫色部分)

    

     本来应该像下面截图一样,外层包裹住box1和box2,但因为设置浮动导致父元素高度塌陷,所以出现了上图的情况

    

  

  3种浮动清除方法

  以前我喜欢固定用一种方式来清除浮动,其实方法不止一种,下面简单总结了3种清除浮动的方法

  ①:使用 overflow: hidden; (子元素设置浮动后,直接给父元素添加 overflow: hidden;属性即可

    ②:使用 clear:both; (新增一个空div,然后给这个空div添加  clear:both;属性即可

    ③:使用 伪元素 ::after(给末尾添加一个看不见的块元素来清除浮动)

  3种浮动清除方法优缺点

  ①:优点是语义化且代码量少;缺点是可能因为内容增加导致超出尺寸的内容被隐藏(不推荐)

  ②:优点是更加语义化;缺点是增加了一个空div,违背了结构样式行为应该分离的原则;(不推荐)

  ③:优点是不仅语义化而且遵守了结构样式行为应该分离的原则;没有什么缺点,现在是主流的方法,(推荐)

  下面我按照上面 ①②③ 编号顺序给出对应 3种方法的代码示例demo

<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title></title>
<style>
.content {
overflow: hidden;
width: 1200px;
border: 10px solid #8990D5;
} .float-box {
float: left;
} .box1,
.box2 {
width: 400px;
height: 400px;
text-align: center;
} .box1 {
background-color: #FFB5BF;
} .box2 {
background-color: #94E8FF;
}
</style>
</head> <body>
<div class="content">
<div class="box1 float-box">box1</div>
<div class="box2 float-box">box2</div>
</div>
</body> </html>
<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title></title>
<style>
.content {
overflow: hidden;
width: 1200px;
border: 10px solid #8990D5;
} .float-box {
float: left;
} .box1,
.box2 {
width: 400px;
height: 400px;
text-align: center;
} .box1 {
background-color: #FFB5BF;
} .box2 {
background-color: #94E8FF;
}
.box3 {
clear: both;
}
</style>
</head> <body>
<div class="content">
<div class="box1 float-box">box1</div>
<div class="box2 float-box">box2</div>
<div class="box3"></div>
</div>
</body> </html>

  

<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title></title>
<style>
.content {
width: 1200px;
border: 10px solid #8990D5;
} .content::after {
content: '';
display: block;
clear: both;
} .float-box {
float: left;
} .box1,
.box2 {
width: 400px;
height: 400px;
text-align: center;
} .box1 {
background-color: #FFB5BF;
} .box2 {
background-color: #94E8FF;
}
</style>
</head> <body>
<div class="content">
<div class="box1 float-box">box1</div>
<div class="box2 float-box">box2</div>
</div>
</body> </html>

css清除浮动的3种方式的更多相关文章

  1. css清除浮动的两种方式(clearfix和clear)

    最近总是在用浮动,这两种方式总是浮现在眼前,或者说去掉父级和同级浮动样式总在思考中.两种方式怎么写都在base.css中. 在做瑞祥之旅的过程中,还是吃了一个大亏,就是清除浮动,不管是同级还是父级,都 ...

  2. css清除浮动的几种方式,哪种最合适?

    细心的人可能发现了,写的导航条中存在一个问题,那就是使用了float之后,父级盒子的高度变为0了. 我们来写一个例子来看一下,创建一个父级div,并设置border属性,然后下边创建两个子元素span ...

  3. HTML/css清除浮动的几种方式

    浮动在HTML/CSS布局中十分常见,虽然浮动布局可以实现很多有用的排版效果,但是浮动的元素脱离了文档流,可能造成包含块高度塌陷.下方行框上移等行为.因此在使用浮动实现想要的效果后,通常还需要清除浮动 ...

  4. CSS清除浮动的几种方式

    浮动对页面的影响: 如果一个父盒子中有一个子盒子,并且父盒子没有设置高,子盒子在父盒子中进行了浮动,那么将来父盒子的高度为0.由于父盒子的高度为0, 下面的元素会自动补位,所以这个时候要进行浮动的清除 ...

  5. css 清除浮动的几种方式

    1.给浮动的元素的父级添加 overflow:hidden;属性 ul>不浮动 添加overflow:hidden; li>浮动 2.给浮动的元素的父级添加after伪类 ul:after ...

  6. 【css】清除浮动的几种方式

    [css]清除浮动的几种方式   因为浮动框不在普通的文档流中,所以它不占据空间.如下面的代码: .news { background-color:gray; border:1px solid bla ...

  7. css考核点整理(一)-浮动的理解和清除浮动的几种方式

    浮动的理解和清除浮动的几种方式 clear语法:clear : none | left | right | both 取值:none : 默认值.允许两边都可以有浮动对象left : 不允许左边有浮动 ...

  8. 前端老司机常用的方法CSS如何清除浮动?清除浮动的几种方式

    在前端开发过程中,我们经常会使用到浮动(float),这个我们即爱又恨的属性.爱,是因为通过浮动,我们能很方便地进行布局:恨,是因为浮动之后遗留下来太多的问题需要解决.下面本篇文章给大家介绍CSS清除 ...

  9. 活学活用,CSS清除浮动的4种方法

    清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近. CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受. 1.结尾处加空div标签 ...

随机推荐

  1. vmware 虚拟机报错 删除文件夹,可以恢复

  2. TPshop之邮箱注册配置教程--附加常见问题集合

    ​ 准备:企业邮箱(开启POP/SMTP功能) 一.步骤教程: 1.登录企业邮箱(QQ邮箱示例) QQ邮箱 POP3:pop.qq.com SMTP:smtp.qq.com SMTP端口号:25 邮箱 ...

  3. C# Post方式下,取得其它端传过来的数据

    // Post方式下,取得java端传过来的数据 if ("post".Equals(context.Request.HttpMethod.ToLower())) { contex ...

  4. 开发中常用的JS知识点集锦

    索引 1.对象深拷贝 2.网络图片转base64, 在线图片点击下载 3.常用CSS样式记录(超出宽高省略展示/播放icon/按钮背景颜色渐变...) 4.对象深拷贝 5.对象深拷贝 6.对象深拷贝 ...

  5. selenium爬取煎蛋网

    selenium爬取煎蛋网 直接上代码 from selenium import webdriver from selenium.webdriver.support.ui import WebDriv ...

  6. hbase读的性能优化

    任何系统都会有各种各样的问题,有些是系统本身设计问题,有些却是使用姿势问题.HBase也一样,在真实生产线上大家或多或少都会遇到很多问题,有些是HBase还需要完善的,有些是我们确实对它了解太少.总结 ...

  7. SpringBoot配置文件

    一.配置文件 配置文件应该是无论在哪个框架中都是一个重要角色,而我们最为常用的xxx.xml和xxx.properties,还有springboot推荐使用的xxx.yml. 二.SpringBoot ...

  8. Nginx status详解

    1. 启用nginx status配置 server {        listen *:80 default_server;        server_name _;        locatio ...

  9. JavaScript处理null、undefined和空值

    最近一直在写前端,在使用jquery的ajax请求然后处理返回值的时候,经常会遇到返回值为undefined或者"null"的情况,很是头疼,而返回接口是来自于其他公司的,所以这种 ...

  10. 主流图库对比以及JanusGraph入门

    1.Overall Comparison Name Neo4j JanusGraph Giraph Jena 1.Compute Framework Yes Yes Yes 2.External Co ...