css之左边定宽右边自适应
html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="left">111</div>
<div class="right">222</div>
</body>
</html>
1.通过浮动实现
.left{
width: 300px;
height: 500px;
background: red;
float: left;
}
.right{
height: 500px;
background: blue;
}
2. 通过定位实现
.left{
width: 300px;
height: 500px;
background: red;
position: absolute; // 固定定位也可以
}
.right{
height: 500px;
margin-left: 300px;
background: blue;
}
3.通过calc实现
这种方法看起来比较笨重,但是它能够保证右侧的div是真正的宽带,而不是独占一行。
.left{
width: 300px;
height: 500px;
background: red;
float: left;
}
.right{
height: 500px;
float: right; // 也可以inline-block
width: calc(100% - 300px);
background: blue;
}
4.通过flex布局实现
body {
display: flex;
}
.left {
height: 500px;
flex: 0 0 300px;
background: red;
}
.right {
height: 500px;
flex: 1;
background: blue;
}
5.通过grid网格布局实现
body {
display: grid;
grid-template-columns: 200px auto;
}