§ ITPOW >> 文档 >> CSS

两列左列浮动,右列自适应宽度的四种方法

作者: 来源: 日期:2011-3-9

第一种方法,网上流传比较广的方法。采用左列 left 浮动,右列不浮动,采用 margin-left 定位的方式。此方法会有一个 ie6 3px bug . 另外,当浏览器框缩小到一定程度时,右侧会掉下来。

第二种方法:采用左列向左浮动,右列绝对定位。为解决 ie6 下右列不撑开问题,在右列中设置一元素右浮动 ( 不是个好方法 )。

此中 wrap 的 right:0; 本是为撑开右列而设置。无奈 ie6 下无效。故设置了 floatSpan。有此之后,去除 float:right 也无影响于效果。

第三种方法,左列使用绝对定位,右列使用 margin-left 定位。

(个人认为此法仍然是最好的方法。ITPOW编辑注)

纵观前面的几种方法,不是使用了 margin-left 定位,就是借助 position 的 left 定位,这两种定位方法,都需要事先知道 left 列的宽度,扩展性上不是很好。

那么,抛弃这两种定位方法,可不可以呢?也许你要说,CSS 中定位的方法也就只有这两种,抛弃这两种定位方法,就没有其他定位方法了。难道不用定位也成?

没错。

第四种方法,我们可以借助 ie 下的 haslayout 让 right 列触发 haslayout。而 FF 下则使用 overflow:hidden( 这个的原理不是很理解 )。

相关文章