- 左列固定,右列自适应
基本的结构:
<div class="box">
<div class="left">left</div>
<div class="right">right</div>
</div>
<style>
.left{
width: 300px;
height: 300px;
background: orange;
}
.right{
width: 100%;
height: 400px;
background: green;
}
</style>
复制代码
效果图如下:
实现原理:左列浮动,两个就重叠到一起了,这时再设置右列的margin-left
值为左列的宽度就可以了。注意,不要忘了清除浮动。
代码如下:
.box{
overflow: hidden;
}
.left{
width: 300px;
height: 300px;
background: orange;
float: left;
}
.right{
width: 100%;
height: 400px;
background: green;
margin-left: 300px;
}
复制代码
效果图如下:
- 左列自适应,右列固定
基本的结构:
<div class="box">
<div class="left">left</div>
<div class="right">right</div>
</div>
<style>
.left{
width: 100%;
height: 400px;
background: green;
}
.right{
width: 300px;
height: 300px;
background: red;
}
</style>
复制代码
效果图如下:
实现原理:
(1)左列和右列都设置左浮动,效果依然是这样。
(2)然后右列设置margin-left
为负的右列的宽度,右列和左列就会到一行。效果如下:
padding-right
为右列的宽度。就会空出右列的宽度。
(4)这时让右列往右移动本身的宽度就可以了,用相对定位来实现。
代码实现如下:
.box{
padding-right: 300px;
margin: 20px;
overflow: hidden;
}
.left{
width: 100%;
height: 400px;
background: green;
float: left;
}
.right{
width: 300px;
height: 300px;
background: red;
float: left;
margin-left: -300px ;
position: relative;
right: -300px;
}
复制代码
效果如下: