CSS中clear“清除浮动”的作用原理

之前看视频中,总听到说clear不是清除浮动,而是消除浮动带来的影响,纠结了一天,没有理解,现在终于能明白这是什么意思了。
下面直接用代码和运行结果说明

HTML代码和CSS代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>float</title><link href="float.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="main"><div class="box1">1</div><div class="box2">2</div><div class="clear">clear</div>
</div>
<div class="box3">3</div>
</body>
</html>

.box1{width: 200px;height: 300px;background-color: chocolate;/*float: left;*//*margin: 20px;*/}
.box2{width: 200px;height: 200px;background-color: cornflowerblue;float: left;
}
.clear{/*float: left;*//*clear: left;*/width: 200px;height: 300px;background-color: darkseagreen;float: right;/*clear:left;*/
}
.box3{height: 200px;background-color: cyan;
}

以上代码的运行结果如图1:

运行结果说明:

  • 由于2(蓝色)设置了向左浮动:float:left,会“脱标”,在文档流中不再占有位置;
  • 3(青色)会忽视2而直接紧跟着1;
  • clear(绿色)设置了向右浮动:float:right;
  • 如果2没有设置向左浮动,则3会紧跟着2下面往下排列,而clear由于设置了向右浮动,和3的相对位置仍然如图,即会随着3一起往下移动一个2的高度,代码(html和之前是一样的,不再展示)和效果如下:

.box1{width: 200px;height: 300px;background-color: chocolate;/*float: left;*//*margin: 20px;*/}
.box2{width: 200px;height: 200px;background-color: cornflowerblue;/*!*float: left;*!取消2的向左浮动*/
}
.clear{/*float: left;*//*clear: left;*/width: 200px;height: 300px;background-color: darkseagreen;float: right;/*clear:left;*/
}
.box3{height: 200px;background-color: cyan;
}

效果如图2(绿色还有一部分高度没有展示出来)

由于2设置浮动,则对3和clear产生了影响,使得他们的位置如图1所示,而不是如图2,现在如果想消除这种浮动对cleard的影响,则在clear中添加clear:left或者clear:both即可,因为2中设置的是左浮动,故消除这种浮动是clear:left或者clear:both(包含了left)即消除2的左浮动对clear的影响,代码和效果如下:


.box1{width: 200px;height: 300px;background-color: chocolate;/*float: left;*//*margin: 20px;*/}
.box2{width: 200px;height: 200px;background-color: cornflowerblue;float: left;
}
.clear{/*float: left;*//*clear: left;*/width: 200px;height: 300px;background-color: darkseagreen;float: right;clear:left;/*清除左浮动*/
}
.box3{height: 200px;background-color: cyan;
}

效果如下图3

clear跑到了2的下面,如图2中的位置一样,好像2没有设置浮动一样,但是由于2的浮动对3的影响并没有消除,故3的位置仍如图1所示,2是浮在3的上面

CSS中clear“清除浮动”的作用原理相关推荐

  1. CSS中关于清除浮动的问题

    1.采用:after的方法清除浮动 优点:避免在html里插入多余的标签 详情:http://www.positioniseverything.net/easyclearing.html 整理成一个通 ...

  2. CSS基础之清除浮动

    CSS基础之清除浮动 本人前端菜鸟一枚,在学习 CSS 过程中发现网上流传的教程参差不齐,要么内容不够详细,要么方法就是错的.本文是在我参考了许多前辈经验的基础上编写的,如有错误的地方,请各位大牛不吝 ...

  3. 在CSS中clear属性的妙用

    这里向大家描述一下在CSS中clear属性妙用,图片和文字元素出现在另外元素中,那么它们(图片和文字)可称为浮动元素(floatingelement).使用clear属性可以让元素边上不出现其它浮动元 ...

  4. html clear的作用,css中clear的作用是什么?

    当属性设置float(浮动)时,它的物理位置已经脱离文档流了,但大多时候我们希望文档流能识别float(浮动),或者希望float(浮动)后面的元素不受float(浮动)的影响,这个时候我们就需要使用 ...

  5. css中clear:both属性的理解及用法

    css中clear:both属性的作用是清除浮动,设置了浮动就会破坏文档流结构,影响后边的布局,此时在设置清除浮动便可解决这一问题,可以认为,设置了clear:both的当前元素会把前边元素中设有浮动 ...

  6. css为何要清除浮动及清除浮动的方法

    一:css为何要清除浮动 1.很多情况下,如果我们使用了float特效,出现margin,padding设置不能正确显示,浮动会导致父级子级之间设置了padding,导致了属性不能正常传达,导致mar ...

  7. CSS中div的浮动float

    ------------------------------CSS中div的浮动float----------------------------------- HTML页面的标准文档流(默认布局)是 ...

  8. 关于css中clear:both清除浮动防止父级元素高度坍塌的原理

    不少小伙伴在防止高度坍塌时都会在浮动元素后面写入一个div,再在里面写入clear:both属性来清除浮动.那么今天就在此探究一下clear:both的工作原理. 先说一下clear:both的作用 ...

  9. 在html中清除浮动的代码,css 两种清除浮动经典实例代码

    一.使用空标签清除浮动 *{margin:0;padding:0;} body{font:36px bold; color:#f00; text-align:center;} #layout{back ...

最新文章

  1. 四连问:API 接口应该如何设计?如何保证安全?如何签名?如何防重?
  2. [译] Spring 的分布式事务实现-使用和不使用XA — 第三部分
  3. 关于加密、签名、证书的作用及运用场景
  4. 微软、华为海思、高通等 50 家公司源代码被泄露!
  5. 【详细了解】Nginx 除了负载均衡,还能做什么?
  6. javascript 面向对象(转)
  7. Python网络编程之socket
  8. Django中FBV和CBV
  9. class with pointer
  10. 《跟阿铭学linux》(第3版)笔记
  11. STM32单片机蜂鸣器实验
  12. rank函数怎么用oracle,Oracle学习教程:rank函数的使用
  13. linux系统python中的列表 || python中的集合
  14. 我知道很多主播因为以前因为公会的名声不太好,或者不想签约被束缚等原因
  15. Java基础18-String类【String类的特点对象个数常用方法】【超详细讲解】
  16. 一个好用的按键驱动模块
  17. FPGA----双馈风力发电机的数字孪生
  18. 在vue中怎么写行内样式高_vue v-bind绑定行内样式
  19. LTDZ_35-4400M 频谱仪使用
  20. d3 - 力引导图(二) 为节点设置多种唯一颜色方案

热门文章

  1. build(构建)--介绍
  2. 018 VGA、DVI、HDMI
  3. 面试个人自我评价总结
  4. array.groupBy,对数组进行分类
  5. 编译原理 LL(1)语法分析器的设计与实现
  6. assert_param()函数
  7. (九)Alian 的 Spring Cloud 公共 API 的(API核心starter)
  8. 打开被独占的文件方法(二) -- 修改句柄访问权限
  9. 实现字符串中单词的逆转,即将单词出现的顺序进行逆转。如将how are you 逆转为you are how!
  10. 100种思维模型之蝴蝶效应思维模型-56