深入理解float浮动

一、浮动的特性  

float最初设计的初衷仅仅是为了文字环绕效果

    float的特性:包裹和破坏

   包裹具有三种行为和表现:收缩(水平方向收缩),坚挺,隔绝。

下图可以形象的描述:

           

具有包裹性的其他情况比如:

dispaly:inline-block/table-cell/...

position:absolute/fixed/sticky

overflow:hidden/scroll

    破坏是当元素被浮动后,比如float:left之后,元素会靠左边,并且父容器被破坏(高度塌陷)。不过浮动使高度塌陷不是bug而是标准

下图可以形象的描述:

    其他具有破坏的情况有:

display:none

position:absolute/fixed/sticky

再举一个图画例子说明浮动效果:

这里蓝色的包络线表示文字或者图片这类inline boxes元素,所形成的看不见的inline boxes高度线。上面图片用了浮动之后,会破会外面的盒子,然后由于浮动的偏移特性变为:

于是图片从inline boxes链上脱离出来,受自身防伪属性的影响(left),靠左显示,由于其“包裹性”,宽度实体依旧存在,加上与文字处于同意文档流中,文字不会与图片位置重叠,加上图片没有inline boxes,高度丢失,形成新的inline boxes高度包络线

时间: 2024-12-20 11:25:06

深入理解float浮动的相关文章

CSS布局之float浮动

之前对CSS的浮动布局总是一知半解,最近开发中用的多了,对它的用法进行一些总结,以便以后忘记时可以查到.哈哈,别说我记性不好,我可是说真的,毕竟前端的知识实在是多而杂,多做笔记,遇到问题时网上搜索资料是其一,但我觉得更重要的是把你遇到的问题和解决方法记录下来..这样以后你的开发效率是多高.言归正传,对浮动进行一些记录. 1.首先,网页是一个文档流,默认按块元素和级联元素从左到右,从上至下的依次显示.而Float浮动元素,就好比是漂浮在了文档流之上,不占据文档流的位置. 如下就是不进行任何浮动的文

CSS float浮动的深入研究、详解及拓展(一)

概念目录 个人感悟之CSS代码的情感化思维 个人观点之浮动的意义仅仅是文字环绕显示而已 个人观点之浮动的本质是"包裹及破坏" 个人观点之目前大多数浮动应用都不是浮动应该做的 个人观点之浮动其实是个魔鬼.混球 一.引言 你我看待事物的方式不同,价值取向也不同,因为我们有着不同的世界观,价值观.这种世界观的差异不仅仅体现在实际的生活中,也反映在代码上.你我看待代码的方式,或者说是代码在我们情感层面的位置是不一样的,我这里说的是情感层面,与逻辑无关,与算法无关(虽然算法受情感影响).这种看待

清除float浮动造成影响的几种解决方案

1. “清除浮动” ??准确的描述应该是“清除浮动造成的影响”  学习浮动推荐的视频教程<CSS深入理解之float浮动> 2.如何清除浮动造成的影响??? 栗子 块级div元素包含一个内联img元素,此时div的高应该是图片img撑开的高度,当设置了图片img元素设置浮动后,div高度就会坍塌 浮动的破坏性 浮动导致高度坍陷代码 <!DOCTYPE html> <html lang="en"> <head> <meta chars

Float浮动与clear

在页面布局当中,除了可以使用position定位来确定元素位置之外,关于元素的定位,另一个标签则是float/浮动. 无论多么复杂的布局,其基本出发点都是:“如何在一行显示多个DIV元素”.而标准的文档流布局是满足不了开发的需求,这就需要用到浮动了. 浮动是可以理解为了让某个DIV元素脱离标准文档流,漂浮在标准文档流之上,和标准流不是在一个层次上.      块元素浮动的优先级是按照HTML块元素排列顺序而来,各站一行的块元素浮动之后会显示在同一行中(如果一行放不下多个元素,那么块元素会被挤到下

CSS float浮动的深入研究、详解及拓展

CSS float浮动的深入研究.详解及拓展(一) by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=583 一.浮动的原始意义是什么? 浮动出现的意义其实只是用来让文字环绕图片而已,仅此而已.而我们目前用浮动实现页面布局本不是浮动该干的事情. 二.浮动的本质是什么? 我将浮动的本质定义为“包裹与破坏”! 1. 浮动的“包裹性”撇开浮动的“破坏性”,浮动就是个带有方位的d

第九篇 float浮动

float浮动 首先老师要声明,浮动这一块,和边距.定位相比,它是比较难的,但是用它,页面排版会更好. 这节课就直接上代码,看着代码去学浮动. 我们先弄一个div,给它一个背景颜色: HTML: <div id="div1">我是浮动div</div> CSS: #div1{ background-color: aquamarine; } 这里同学们能看到,div1,它占据整行,有一个背景色.那么我们先来看看给它设置一个float(浮动)属性: CSS: #di

float浮动的块状元素编写的先后顺序对页面布局的影响

在做一些练习题时发现一个初学者经常犯的一些错误:对浮动和定位都很理解,知道怎么使用,但是一旦做东西的时候,为什么编写出来的效果不是自己想象中的样子? 例如:我想做一个三栏布局的页面,理想效果如下图: 编写代码如下: 满心欢喜的刷出来的效果却是这个样子的: 这到底是为什么捏??? 在Chrome浏览器中按F12看看吧 明白了,解释为:当写了div1左浮动后,div1是脱离文本流的,那么在写div2时,因没设置浮动,那么div2就老老实实按照文本流的安排霸占第一行,当安排div3的放置时,div3设

盒子模型、网页自动居中、float浮动与清除、横向两列布局

1.CSS包含:标准文档流,浮动,绝对定位 标准文档流的特点:从上到下,从左到右,输出文档内容 盒子模型:块级元素(div ui li dl dt p)与行级元素(span strong img input) 盒子模型:边框(border)外边框(margin)内边框(padding)内容(content) 盒子3D模型:border. content+padding .background-img.background-color.margin <html> <head> <

&lt;转载&gt;如何解决子级用float浮动父级div高度不能自适应的问题

转载:http://www.kwstu.com/ArticleView/divcss_2013101582430202 解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 最外层的父级DIV不能自适应高度-不能随对象撑开没有高度 当在对象内的盒子使用了float后,导致对象本身不能被撑开自适应高度,这个是由于浮动产生原因. 如何解决父div对象自适应高度,方法有三种,接下来DIVCSS5逐一介绍. 1.首先我们先看HTML