浮动框定位的一点个人总结
声明,高手请直接忽略本文。
进入正题:
网上也有很多浮动框定位的教程,差不多和W3School说的一样,看起来也简洁易懂,特别适合我们这种新手。但是在IE中,浮动框和普通流中块框的位置关系却与教程说的完全对应不上。这是为啥呢?抱歉我也不知道,哪位高手知道的话不妨指点一下。
我现在的使用法则是:
在FF中,视浮动框浮在普通流层上方,这个就是常见教程中写的效果;
在IE中,视浮动框虽有浮动,但仍处于普通流层中。
提示:你可以先修改部分代码再运行。
分别在FF和IE7中运行上面的代码,结果对比如下图:

是不是很明了了?
如果还有不明白,那就以第二个图详细说明
FF中:
left和right的浮动框先定位,分别碰到了父div的左右边缘;在定位static框时,视float框在普通流层上方,对普通流不影响,故static框从默认父div左上开始定位。又加上static宽度设了auto,于是形成了传说中的液态布局形式。
IE7中:
left和right的浮动框视为在普通流层中,定位时就占了普通流中的相应位置。那么,static框在定位时,起于左浮动框右边缘,止于右浮动框左边缘。
再不明白,那就只能说明我表达能力有问题了-,-b
关于定位,其他就没什么说了,直接参考W3School的教程即可,写得很详细。
看了蓝色理想高手的回复,才发现原来这是IE的haslayout属性在作怪,我果然是菜-,-b
比如第二个例子,要是static框设置高宽都是auto,haslayout就是no了,那就可以实现液态布局了。
其他具体的google “haslayout”,不累述 。