解决方案 1
在第一个子 div 集上float:left;
在第二个子集上:(overflow:hidden
或自动)。这会触发块格式化上下文 - 这会导致第二个 div 填充剩余的水平宽度。
小提琴
.container
{
width: 100%;height: 50%; border:1px solid black;
height: 100px;
}
.left
{
width: 50px; border: 1px solid green;height: 100%;box-sizing: border-box;
float:left;
}
.right
{
width: auto; border: 1px solid red;height: 100%;box-sizing: border-box;
overflow: hidden;
}
这种方法的一个重要优点是它是跨浏览器的。(不需要css3)
解决方案 2
在第一个子 div 上设置position:absolute
并在第二个子 div 上设置:padding-left:50px
- 利用 box-sizing 属性将该填充放置在框中。
小提琴
.container
{
width: 100%;height: 50%; border:1px solid black;
height: 100px;
position: relative;
}
.left
{
width: 50px; border: 1px solid green;height: 100%;box-sizing: border-box;
position:absolute;
top:0;
left:0;
}
.right
{
border: 1px solid red;
width: 100%;
height: 100%;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding-left: 50px;
}