左侧自适应宽度的左右布局的实现

左侧自适应宽度的一行两列布局的实现,左列宽度自适应,右列宽度保持不变。
HTML的写法是:

<div id="main">
    <div id="left"><p>左列</p></div>
    <div id="right"><p>右列</p></div>
</div>

现在加CSS,要实现的效果是mian是可变的,right层宽度为200px,并且固定不变,要让left的宽度随main的变化而变化。CSS的写法是:

#main{width:100%;background:#ccc}
#left{width:100%;margin-left:-200px;float:left;background:red}
#right{width:200px;float:right;background:green}

基本上达到所要的效果了,#left的宽度设置为100%,加个margin-left:-200px;让它向左移动200PX,好让它腾出200PX的空间塞进right层。但有一个问题,左列被移动的那200PX隐藏了,看不到里面的东西。所以还必须增加一个DIV来辅助。

修改了一下,HTML代码,变成:

 程序代码

<div id="main">
    <div id="left">
        <div id="innerLeft"><p>左列</p></div>
    </div>
    <div id="right"><p>右列</p></div>
</div>

现在要让innerLeft把左边被隐藏的部分弄出来,所以得再加个margin-left:200px,修改后的CSS代码如下:

 程序代码

#main{width:500px;background:#ccc}
#left{width:100%;margin-left:-200px;float:left;background:red}
#innerLeft{margin-left:200px;}
#right{width:200px;float:right;background:green}


演示:
 HTML代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


还有更简单的方法,至于为什么网上很少有人用,我也在论证。

 HTML代码


[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

很少用的那个方法,自适应宽度的那个层里面不能clear掉float的属性。
估计是因为此吧!

有话要说