12.CSS基础_浮动(float)深入理解

浮动想学好,一定要知道三个性质。接下来讲一讲。

性质1:浮动的元素脱标

脱标即脱离标准流。我们来看几个例子。
证明1:
12.CSS基础_浮动(float)深入理解
上图中,在默认情况下,两个div标签是上下进行排列的。现在由于float属性让上图中的第一个

标签出现了浮动,于是这个标签在另外一个层面上进行排列。而第二个
还在自己的层面上遵从标准流进行排列。

证明2:

一个span标签不需要转成块级元素,就能够设置宽度、高度了。所以能够证明一件事儿,就是所有标签已经不区分行内、块了。也就是说,一旦一个元素浮动了,那么,将能够并排了,并且能够设置宽高了。无论它原来是个div还是个span。

性质2:浮动的元素互相贴靠

我们来看一个例子就明白了。

我们给三个div均设置了float: left;属性之后,然后设置宽高。当改变浏览器窗口大小时,可以看到div的贴靠效果:
上图显示,3号如果有足够空间,那么就会靠着2号。如果没有足够的空间,那么会靠着1号大哥。
如果没有足够的空间靠着1号大哥,3号自己去贴左墙。

性质3:浮动的元素有“字围”效果

12.CSS基础_浮动(float)深入理解

图中,我们发现:div挡住了p,但不会挡住p中的文字,形成“字围”效果。

关于浮动我们要强调一点,浮动这个东西,为避免混乱,我们在初期一定要遵循一个原则:永远不是一个东西单独浮动,浮动都是一起浮动,要浮动,大家都浮动。

性质4:收缩

收缩:一个浮动的元素,如果没有设置width,那么将自动收缩为内容的宽度(这点非常像行内元素)。
12.CSS基础_浮动(float)深入理解
图中,div本身是块级元素,如果不设置widh,它会单独霸占整行;但是,设置div浮动后,它会收缩

浮动的补充(做网站时注意)

12.CSS基础_浮动(float)深入理解
上图所示,将para1和para2设置为浮动,它们是div的儿子。此时para1+para2的宽度小于div的宽度。效果如上图所示。可如果设置para1+para2的宽度大于div的宽度,我们会发现,para2掉下来了:
12.CSS基础_浮动(float)深入理解