(1)flex 实现:
<!DOCTYPE html>
<html>
<head>
<title>实现两栏布局</title>
<style>
*{
padding:0;
margin:0;
}
html,body{
height: 100%;
}
.content{
display: flex;
display: -webkit-flex;
width: 100%;
height: 100%;
}
.left{
flex: 0 1 300px;
background: yellow;
}
.right{
flex: 1;
background: #ccc;
}
.content > div {
height: 100%;
}
</style>
</head>
<body>
<div class="content">
<div class="left">这是第一个div</div>
<div class="right">这是第二个div</div>
</div>
</body>
</html>
(2)float + margin-left 实现:
.content{
width: 100%;
height: 100%;
}
.left{
width: 300px;
float: left;
background: yellow;
}
.right{
margin-left: 300px;
background-color: #ccc;
}
.content > div {
height: 100%;
}
(3)通过 calc 计算宽度实现:
.content{
width: 100%;
height: 100%;
}
.left{
width: 300px;
float: left;
background: yellow;
}
.right{
width: calc(100%-300px);
background-color: #ccc;
}
.content > div {
height: 100%;
}
(4)设置display: table 布局实现:
.content{
width: 100%;
height: 100%;
display: table;
}
.left{
width: 300px;
background: yellow;
}
.right{
background-color: #ccc;
}
.content > div {
height: 100%;
display: table-cell;
}
(5)通过设置 position:absolute 来实现:
.content{
width: 100%;
height: 100%;
position: relative;
}
.left{
width: 300px;
left:0;
top:0;
background: yellow;
}
.right{
left: 300;
top: 0;
background-color: #ccc;
}
.content > div {
height: 100%;
position: absolute;
}
(6)position+margin-left 实现:
.content{
width: 100%;
height: 100%;
position: relative;
}
.left{
width: 300px;
left:0;
top:0;
position: absolute;
background: yellow;
}
.right{
margin-left: 300px;
background-color: #ccc;
}
.content > div {
height: 100%;
}
(7)float 结合 BFC 实现:
.content{
width: 100%;
height: 100%;
overflow: auto;
}
.left{
width: 300px;
float: left;
background: yellow;
}
.right{
overflow: auto;
background-color: #ccc;
}
.content > div {
height: 100%;
}
右侧盒子通过设置 overflow: auto; 形成了BFC。
以上例子皆可实现:两栏布局,左侧固定宽度,右侧自适应 的效果,页面效果如下: