十分推荐的一篇关于CSS浮动的博文

BiliFocus浏览器插件:屏蔽B站分心元素,打造专注学习环境 你有没有过这样的经历:打开B站只是想查一个技术教程,结果首页推荐了一个“十分钟学会XX”的视频,点进去看了五分钟,侧边栏又冒出一个“程序员搞笑日常”,等回过神来,已经刷了一个小时,最初要查的问题早就忘得一干二净。这不是你的自制力问题,而是现代内容平台精心设计的“注意力陷阱”——它们的目标就是让你停留更久。 今天要介绍的 BiliFocus ,就是一款专门为B站(Bilibili)用户设计的浏览器插件,它的核心目标只有一个:帮你夺回对注意力的控制权,让你在B站上能真正“专注”地学习或工作。它不是一个简单的广告 阅读详情

原文链接:http://www.cnblogs.com/zhongxinWang/archive/2013/03/27/2984764.html

首先要知道,div是块级元素,在页面中独占一行,自上而下排列,也就是传说中的流。如下图


可以看出,即使div1的宽度很小,页面中一行可以容下div1和div2,div2也不会排在div1后边,因为div元素是独占一行的。
注意,以上这些理论,是指标准流中的div。无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”。
显然标准流已经无法满足需求,这就要用到浮动。 浮动可以理解为让某个div元素脱离标准流,漂浮在标准流之上,和标准流不是一个层次。
例如,假设上图中的div2浮动,那么它将脱离标准流,但div1、div3、div4仍然在标准流当中,所以div3会自动向上移动,占据div2的位置,重新组成一个流。如图:


从图中可以看出,由于对div2设置浮动,因此它不再属于标准流,div3自动上移顶替div2的位置,div1、div3、div4依次排列,成为一个新的流。又因为浮动是漂浮在标准流之上的,因此div2挡住了一部分div3,div3看起来变“矮”了。
这里div2用的是左浮动(float:left;),可以理解为漂浮起来后靠左排列,右浮动(float:right;)当然就是靠右排列。这里的靠左、靠右是说页面的左、右边缘。
如果我们把div2采用右浮动,会是如下效果:


此时div2靠页面右边缘排列,不再遮挡div3,读者可以清晰的看到上面所讲的div1、div3、div4组成的流。
目前为止我们只浮动了一个div元素(div2),如果浮动多个div呢?
下面我们把div2和div3都加上左浮动,效果如图:


同理,由于div2、div3浮动,它们不再属于标准流,因此div4会自动上移,与div1组成一个“新”标准流,而浮动是漂浮在标准流之上,因此div2又挡住了div4。
当同时对div2、div3设置浮动之后,div3会跟随在div2之后,不知道读者有没有发现,一直到现在,div2在每个例子中都是浮动的,但并没有跟随到div1之后。因此,我们可以得出一个重要结论:
假如某个div元素A是浮动的,如果A元素上一个元素也是浮动的,那么A元素会跟随在上一个元素的后边(如果一行放不下这两个元素,那么A元素会被挤到下一行);如果A元素上一个元素是标准流中的元素,那么A的相对垂直位置不会改变,也就是说A的顶部总是和上一个元素的底部对齐。
为了帮助读者理解,再举几个例子。
假如我们把div2、div3、div4都设置成左浮动,效果如下:


根据上边的结论:先从div4开始分析,它发现上边的元素div3是浮动的,所以div4会跟随在div3之后;div3发现上边的元素div2也是浮动的,所以div3会跟随在div2之后;而div2发现上边的元素div1是标准流中的元素,因此div2的相对垂直位置不变,顶部仍然和div1元素的底部对齐。由于是左浮动,左边靠近页面边缘,所以左边是前,因此div2在最左边。
假如把div2、div3、div4都设置成右浮动,效果如下:


道理和左浮动基本一样,只不过需要注意一下前后对应关系。由于是右浮动,因此右边靠近页面边缘,所以右边是前,因此div2在最右边。
假如我们只把div2、div4左浮动,效果图如下:


依然是根据结论,div2、div4浮动,脱离了标准流,因此div3将会自动上移,与div1组成标准流。div2发现上一个元素div1是标准流中的元素,因此div2相对垂直位置不变,与div1底部对齐。div4发现上一个元素div3是标准流中的元素,因此div4的顶部和div3的底部对齐,并且总是成立的,因为从图中可以看出,div3上移后,div4也跟着上移,div4总是保证自己的顶部和上一个元素div3(标准流中的元素)的底部对齐。
至此,恭喜读者已经掌握了添加浮动,但还有清除浮动,有上边的基础清除浮动非常容易理解。
经过上边的学习,可以看出:元素浮动之前,也就是在标准流中,是竖向排列的,而浮动之后可以理解为横向排列。
清除浮动可以理解为打破横向排列。

清除浮动的关键字是clear,官方定义如下:

语法:
 
       clear : none | left | right | both
 
       取值:
 
       none  :  默认值。允许两边都可以有浮动对象
 
       left   :  不允许左边有浮动对象
 
       right  :  不允许右边有浮动对象
 
       both  :  不允许有浮动对象

定义非常容易理解,但是读者实际使用时可能会发现不是这么回事。
定义没有错,只不过它描述的太模糊,让我们不知所措。
根据上边的基础,假如页面中只有两个元素div1、div2,它们都是左浮动,场景如下:


此时div1、div2都浮动,根据规则,div2会跟随在div1后边,但我们仍然希望div2能排列在div1下边,就像div1没有浮动,div2左浮动那样。

这时候就要用到清除浮动(clear),如果单纯根据官方定义,读者可能会尝试这样写:在div1的CSS样式中添加clear:right;,理解为不允许div1的右边有浮动元素,由于div2是浮动元素,因此会自动下移一行来满足规则。

其实这种理解是不正确的,这样做没有任何效果。

对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素。

怎么理解呢?就拿上边的例子来说,我们是想让div2移动,但我们却是在div1元素的CSS样式中使用了清除浮动,试图通过清除div1右边的浮动元素(clear:right;)来强迫div2下移,这是不可行的,因为这个清除浮动是在div1中调用的,它只能影响div1,不能影响div2。

要想让div2下移,就必须在div2的CSS样式中使用浮动。本例中div2的左边有浮动元素div1,因此只要在div2的CSS样式中使用clear:left;来指定div2元素左边不允许出现浮动元素,这样div2就被迫下移一行。


那么假如页面中只有两个元素div1、div2,它们都是右浮动呢?读者此时应该已经能自己推测场景,如下:


 此时如果要让div2下移到div1下边,要如何做呢?
我们希望移动的是div2,就必须在div2的CSS样式中调用浮动,因为浮动只能影响调用它的元素。可以看出div2的右边有一个浮动元素div1,那么我们可以在div2的CSS样式中使用clear:right;来指定div2的右边不允许出现浮动元素,这样div2就被迫下移一行,排到div1下边。



FPGA新手必看:用USB转TTL实现串口通信的完整流程(附CH340G电路详解) 本文为FPGA新手提供了通过USB转TTL模块实现串口通信的完整实战指南。详细解析了CH340G电路设计要点、硬件连接方法,并分享了经过验证的Verilog代码框架,帮助读者快速掌握FPGA与PC通信的核心技术,解决电平匹配与波特率设置等常见问题。 阅读详情

相关推荐

PnP 单目相机位姿估计(二):solvePnP利用二维码求解相机世界坐标

前言 原理简介 输入参数准备 1 objectPoints特征点世界坐标 2 imagePoints特征点在摄像头下的像素点坐标 3cameraMatrixdistCoeffs内参矩阵和畸变矩阵 相机世界坐标的求解 1求世界坐标中的点在相机坐标系下的坐标 2求相机在世界坐标中的坐标 3效果求解相机在世界坐标系下的坐标点 4求解代码1.前言  很多时候,当我们利用单目相机获取图像时,往往只能获取图像中

cocoaqin的博客 5万+

CSS的浮动

CSS浮动 浮动和绝对定位一样,都让那个元素脱离了原始的文件流(由于浮动后,那些浮动的div不占用空间,最后的一个div就会窜,你这个时候就要清楚浮动)!     【转】 可以看出,即使div1的宽度很小,页面中一行可以容下div1和div2,div2也不会排在div1后边,因为div元素是独占一行的。 注意,以上这些理论,是指标准流中的div。无论多么复杂的布局,其基本出发点

yangnuowei88的专栏 1449

Android开发Intent详解

本文详解Android开发Intent。

qq_30725967的博客 2415

float以及清除

浮动的基础作用 就是让文本环绕图片。包裹性 设置了float之后,其宽度会自动调整为包裹住内容宽度,而不是撑满整个父容器。display样式是没有变化的,还是block。破坏性 使用float的图片会无法与文字在同一行显示,并且高度为0,所以会造成父元素高度的塌陷,因此就要清除浮动。 浮动元素和绝对定位元素相比,区别在于绝对定位的元素脱离了文档流,而浮动元素依旧在文档流中。清除float

weixin_40014283的博客 347

异步FIFO的隐形陷阱:复位信号同步化实战解析

本文深入解析异步FIFO设计中复位信号同步化的隐形陷阱,重点分析赛灵思xpm_fifo_async原语在FPGA应用中的常见问题。通过实战代码和系统集成方案,提供复位同步化的最佳实践,帮助工程师避免跨时钟域通信故障,提升系统可靠性。

keras9composer的博客 247

使用HART Server PC软件进行HART设备的组态、调试和分析的完整指南

HART协议是一种用于工业自动化中的双向通信协议,能够在4-20mA模拟信号的基础上叠加数字信号,从而实现设备的远程监控和管理。HART协议兼具模拟和数字通信的优点,被广泛应用于过程控制系统中。设备组态:通过软件可以对HART设备进行组态,配置设备参数。设备调试:支持设备的在线调试和故障诊断,方便快速解决问题。数据分析:提供设备运行数据的实时监控和历史数据分析功能。报表生成:支持生成各类报表,便于数据记录和管理。

qq_38334677的博客 2474

关于浮动与清除浮动,你应该知道的

我在做页面布局的时候,多多少少总会受到来自浮动的困扰,因此专门通过实践来总结一下浮动与清除浮动。 首先总结几个基础的概念: 浮动:设置浮动的元素会脱离文档流,不会影响块元素的布局,但是会影响内联元素的排列[通常是文本]; 文档流:在文档流中,块元素会单个元素独占一行 接下来我们通过实际演示来看看关于浮动的那些事儿。 下面是5个div块元素...

weixin_34302798的博客 171

医疗AI多智能体资源调度:用Python构建高性能MCU资源池

本文介绍了医疗AI服务平台中多智能体资源争用问题的解决方案。作者设计了一个基于MCU(多点控制单元)理念的中央资源调度器,通过三层架构(资源抽象层、调度策略层、执行控制层)实现对GPU、API、数据库等医疗资源的统一管理。系统采用增强版信号量机制处理可计数并发资源,优化令牌桶算法管理速率资源,并支持急诊优先、配额限制、审计合规等医疗场景特殊需求。核心代码提供了带优先级抢占的并发控制和医疗专用令牌桶实现,可有效解决多智能体资源争用导致的优先级混乱、资源利用不均等问题。

AllenLV的博客 3220

WEB:float布局

浮动详解,浮动元素的特点,示例,清除浮动带来的影响

weixin_50517811的博客 1123

026、传感器校准:加速度计校准

本文详细介绍了无人机飞控系统中加速度计的校准方法。作者从一次炸机事故引入,强调加速度计校准的重要性。文章首先解释了加速度计测量原理和误差来源,包括零偏、尺度因子和交叉轴耦合。重点介绍了两种校准方法:六位置法利用重力作为参考,操作简单但精度有限;椭球拟合通过采集大量数据点进行最小二乘拟合,精度更高但实现复杂。文章还指出温度补偿这一常被忽视的关键因素,并分享了实际调试中的经验教训,包括采样时长、安装误差、验证方法等。最后建议初学者从六位置法入手,逐步优化校准精度,强调良好的校准是飞控性能的基础。

2401_88858637的博客 45

风电光伏功率预测竞赛精华总结:技术解析与实战经验

本文深度解析新能源功率预测竞赛的技术要点与实战经验。首先介绍了风电、光伏功率预测对电网调度优化、降低运营风险的重要性,以及多个竞赛的基本概况。在数据特征分析部分,详细探讨了气象预报数据和功率数据的特征,包括时间周期性、数据质量问题及处理方法。针对异常值检测、数据标准化和特征工程(如时间特征、统计聚合特征、风速风向特征和滞后特征)提供了具体的技术实现方案。文章为新能源功率预测提供了实用的技术指导,对相关竞赛和实际应用具有重要参考价值。

算法工程师 206

前端学习笔记:CSS中浮动的原理,定位

CSS中Float的原理,定位的原理(fixed,absolute,relative,static)

sinat_38393872的博客 1281

win10解决IE浏览器安装不上的问题(卸载依然显示不能安装)

目前win10 系统不支持外部ie安装程序,所以必须用win10自带的应用来安装 一、错误的卸载的方式 在控制面板的当前安装的程序界面是看不到ie的,需要选择控制面板左上角的启用或关闭windows功能 将ie11前面的勾勾去掉 这种方法是很多网站上的误区,其实这并没有卸载成功ie只是把ie的功能关闭了,但是他还在你的电脑上。你可以理解为我们说的对文件夹执行的隐藏文件夹功能。那个隐藏的文件夹依...

清平乐的技术专栏 3万+

来自大厂 300+ 前端面试题大全附答案(整理版)+前端常见算法面试题~~最全面详细

“全方位总结一下所遇到的面试题目,与大家共同学习,也是对自己的一次总结” 今天给朋友们分享我花了将近两个月时间,参考了很多网上的优质博文和项目整理的一份比较全面的前端面试题库,还有面试前刷过的题目(其中概括HTML,CSS,JS,React,Vue,NodeJS,互联网基础知识)共有【5000多条】。很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer, 也已经帮助了很多的前端学习者,希望也能帮助到你。前端面试题库 技术分享推荐:★★★★★地址:前端技术导航大全推荐:★★★★★地址:前端面试题库3

web全栈开发的博客 510

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【web初步】浮动(float)

让多个盒子(div)水平排列成一行,使得浮动成为布局的重要手段。 可以实现盒子的左右对齐等等… 浮动最早是用来控制图片,实现文字环绕图片的效果。 在 CSS 中,通过 float 中文, 浮 漏 特 属性定义浮动,语法如下: 选择器 { float: 属性值; } 属性值 描述 none 元素不浮动(默认值) left 元素向左浮动 right 元素向右浮动...

lzx's blog 1973

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【web前端】浮动

使用课程是黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程_哔哩哔哩_bilibili目录一、浮动1、传统网页布局的三种方式2、标准流(普通流,文档流)3、为什么需要浮动4、什么是浮动5、浮动特性(重难点)(1)设置了浮动( float )的元素最重要特性(2)如果多个盒子都设置了浮动,则它们会按照属性值一行内显示并且顶端对齐排列(3)浮动元素会具有行内块元素特性6、浮动元素经常和标准流父级搭配使用案例:小米布局案例1​编辑案例:小米布局案例2​编辑案例:小米

qq_61768389的博客 4182

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

CSS浮动原理

CSS浮动现象

weixin_51938171的博客 339

web前端入门到实战:HTML定位和布局----float浮动

1、定位体系一共有三种 (1)常规流; (2)浮动定位 (3)绝对定位 2、float属性常用的语法: (1)float:left;左浮动 (2)float:right;右浮动 (3)float:none;无浮动 任何元素都可以使用浮动,无论是块级元素div、ul等等,还是行内元素都可以浮动,任何被声明float的元素都会自动被设置成块元素,有了块级元素的各种特点,可以设置宽高,可以设置内外...

软件开发-前端开发-IT 1144

两个div分层,一个在上面一个在下面

<style type="text/css"> .shell{ position:relative; color:#fff; height:150px; width:55px; display:block border:1px solid #aaa; filter:alpha(opacity=50); margin-right:10px;} </style&gt...

banan4805的博客 1万+

Web前端-CSS(浮动)

概念元素的浮动是指设置了浮动属性的元素会脱离标准普通流的控制移动到指定位置。作用:让多个盒子(div)水平排列成一行,使得浮动成为布局的重要手段。语法:选择器 { float: 属性值;属性值描述none元素不浮动(默认值left元素向左浮动right元素向右浮动margin : 0;} .box1 {/*元素添加浮动属性之后1.当前元素会脱离标准流的控制,俗称脱标2.脱标以后将自己原来的位置漏给了下方标准流的盒子。

apple_73204060的博客 2138

Web float和position

float 和 position 一.浮动(float) 1.什么是浮动 float属性用于创建浮动框,将其移到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。 语法: 选择器 {float 属性值;} 属性值: none 元素不浮动(默认值) left 元素向左浮动 right 元素向右浮动 样例: 默认值(相当于标准流) <!DOCTYPE html> <html lang="en"> <head> <meta charset="U

qq_51007706的博客 1187

【Web】CSS中的浮动float

CSS中的float 文章目录CSS中的float1、float浮动属性2、float文字环绕图片3、float浮动的真正原因以及副作用分析4、清除浮动的四种解决方法5、实际应用 导航效果 复习一波 简单记录 - 慕课网 - 从网页搭建入门JavaWeb 1、float浮动属性 float中的四个参数 float:left; 左浮动 float:right;右浮动 float:none;不浮动 ...

渐若窥宏大的博客 2429

CSS浮动的基本原理,五分钟搞懂

在进行网页布局时往往需要为各部分进行定位,在CSS中有一种非常方便的方法,那就是“浮动float” 我们举一个小例子:有三个div块,它们长宽颜色不一,依次是红、黄、绿。如图(初始状态1.1)。 首先我们应该知道一个知识点:div是一种块状元素,一个div独占一行。所以三个div合在一起会成三行的布局,从上往下依次是红色、黄色、绿色。 现在要让它们“飘起来”。 我们在第一个色块(红色)上添加左浮...

weixin_38681731的博客 1423

html中的float含义,css中float是什么意思?

float是CSS中的浮动属性,当元素设置了float属性就会脱离标准流,浮动在其他元素上,它会根据属性值向左或者向右浮动。CSS中的float属性是一个频繁用到的属性,对于初学者来说,如果没有理解好浮动的意义和表现出来的特性,在使用的使用很容易陷入困惑,云里雾里,搞不清楚状态。下面本篇文章就来为大家简单介绍一下float属性,希望对大家有所帮助。float属性float,顾名思义就是浮动,设置了...

weixin_33392336的博客 2566

web前端开发基础(六)(浮动属性)

此时可以理解为有两层页面,一层是底层的原页面,一层是脱 离文档流的上层页面,所以会出现折叠现象。如果有父级塌陷,并且同级元素也收到了影响,可以使用 overflow。清除浮动只是改变元素的排列方式,该元素还是漂浮着,不占据文档位置。如果父元素高度塌陷,可以给父元素设置高度,撑开元素本身大小。当所有元素同时浮动,会变成水平摆放,向左或者向右。属性定义元素在哪个方向浮动,任何元素都可以浮动。浮动后,该元素就会脱离文档流并向左。浮动只有左右浮动,没有上下浮动。浮动元素会造成父元素高度塌陷。在设置了浮动的div。

weixin_75079701的博客 909

web前端学习(二十四)——CSS3浮动属性(float)、清除浮动属性(clear)的相关设置

web前端学习(二十四)——CSS3浮动属性(float)、清除浮动属性(clear)的相关设置

贝尔摩德苦艾酒 1万+
上一篇: 正向代理与反向代理的区别
下一篇: 【深入浅出Koa】入门知识,带你以现代化开发方式构建Web应用
hellochenlu
博客等级 码龄14年 97粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值