1.左侧绝对定位法

直接看代码:

<!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>CSS两列布局——第一种方法</title>
<style>
.left {
position: absolute;

height: 500px;
width: 300px;
background: #333;
color: #ccc;
}
.right {
height: 500px;
background: #ddd;
margin-left: 300px;

}
</style>
</head>
<body>
<div class="left">
左侧设置绝对定位
</div>
<div class="right">
右侧左边距margin-left设为左侧的宽度,这是关键
</div>
</body>
</html>

效果如下:

CSS两列布局——左侧宽度固定,右侧宽度自适应的3种方法-LMLPHP

关键点在于.left的position:absolute和.right的margin-left:300px;

2.左侧浮动法(右侧不浮动)

<!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>CSS两列布局——第二种方法</title>
<style>
.left {
float: left;

height: 500px;
width: 300px;
background: #333;
color: #ccc;
}
.right {
overflow: auto;

height: 500px;
background: #ddd;
}
</style>
</head>
<body>
<div class="left">
左侧设置左浮动
</div>
<div class="right">
右侧设置overflow:auto
</div>
</body>
</html>

效果如下:

CSS两列布局——左侧宽度固定,右侧宽度自适应的3种方法-LMLPHP

关键点:左侧设置左浮动,右侧设置overflow:auto,我也不知道为什么这样就有效,以后知道了来补充。

3.Flex布局法(建议移动端页面使用)

<!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>CSS两列布局——第三种方法,flex布局</title>
<style>
.wrapper {
display: flex;
}
.left {
flex: 0 0 25%;
width: 25%;
height: 500px;
background: #333;
color: #ccc;
}
.right {
flex: 1;
height: 500px;
background: #ddd;
}
</style>
</head>
<body class="wrapper">
<div class="left">
flex子元素:固定宽度,可用百分比
</div>
<div class="right">
flex子元素:宽度不定,但是flex:1,否则它是随内容而撑开。
</div>
</body>
</html>

效果如下:

CSS两列布局——左侧宽度固定,右侧宽度自适应的3种方法-LMLPHP

参考文章:两列布局——左侧宽度固定,右侧宽度自适应的两种方法

04-27 01:02