博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
float详解
阅读量:5324 次
发布时间:2019-06-14

本文共 1418 字,大约阅读时间需要 4 分钟。

先上一个简单示例,了解一下float的使用

fl0at
Content-Left
Content-Main
左浮动
">右浮动
View Code

 在Content-Main 和右浮动对应div里加上float:left或者给他们设置width如图:

float 属性的本质理解

      float 出现的根本意义只是用来让文字环绕图片而已。而我们目前用 float 实现页面布局本不是 float 该干的事情。

      float 属性(无论是左浮动还是右浮动)某种意义上而言与 display:inline-block 属性的作用是一模一样的,所以类似于 display:block; float:left; 的CSS代码超过95%的情况是没有道理的( display:block 是多余的)。然而,float无法等同于 display:inline-block,其中原因之一就是浮动的方向性,display:inline-block 仅仅一个水平排列方向,就是从左往右,而float可以从右往左排列,这就是两者的差异。然而,我们又有多少情况需要元素从右往左排列呢?很少。

fl0at
Content-Left
Content-Main
左浮动
">右浮动
View Code

 float 实现页面布局

        浮动可以实现一行多列。

        对一个元素声明clear:both,会将来自元素周围的的浮动清除,举一个简单的例子就是当先声明一个元素向左浮动时,那么这个元素的右边就会留出一部分空白,如果这个时候空间可以容下该元素的下一个元素的大小,那么由于此元素声明过浮动向左,那么下一个元素就会自动弥补留下的空间。那么相对这个补缺的元素(本身没有声明浮动),它有一个来自他左方的浮动,如果这个时候对这个补缺的元素声明clear: both;那么它就会忽略上一个元素的浮动声明而不去补之前的空缺。对#div1和#div2都声明了浮动向左,这个时候#div1之前是没有其他浮动元素的,clear:both并不会对之后的#div2产生影响,而相对#div2,由于它之前的#div1声明向左浮动,也就给#div2留出了一部分空间,那么由于#div1声明的向左浮动,#div2默认会自动补全,这个时候再对#div2声明clear:both就会起作用,它就跑到下面去了。若限制了parent元素的宽为100pixel,即使#div1向左浮动,也没有空间给#div2补全了,所以#div2只能跑下面去。

转载于:https://www.cnblogs.com/llljpf/p/6634965.html

你可能感兴趣的文章
POJ 3670 DP LIS?
查看>>
空心菱形的显示
查看>>
Eclipse 常用快捷键清单
查看>>
ELK Stack (2) —— ELK + Redis收集Nginx日志
查看>>
ElasticSearch 2 (19) - 语言处理系列之故事开始
查看>>
redis 存储时间区间的数据
查看>>
STM32F0库函数初始化系列:进入STOP模式,外部中断唤醒
查看>>
p1525 关押罪犯
查看>>
使用Html5shiv.js让ie支持html5
查看>>
DBA 优化法则
查看>>
用Python连接SQLServer抓取分析数据、监控 (pymssql)
查看>>
升级ruby后再安装cocodPod
查看>>
MySQL数据库8(十三)高级数据操作之select指令
查看>>
随心测试_Python Se_002<不同浏览器驱动>
查看>>
LeetCode 202. Happy Number
查看>>
在ASP.NET WebService 中如何使用 WebMethod 属性
查看>>
一个很详细的web.xml讲解
查看>>
AngularJs学习笔记--concepts(概念)
查看>>
JAVA学习5:用Maven创建第一个web项目(2)servlet演示
查看>>
【Android】解析AccessibilityService(辅助服务)的使用
查看>>