本文将介绍面试中常考的一些CSS布局:
- 两栏布局(左边固定右边自适应)
- 三栏布局(左右固定中间自适应)
- 流体布局(浮动)
- BFC三栏布局
- 双飞翼布局
- 圣杯布局
- flex
- table布局
- 绝对定位布局
- 网格布局(Grid布局)
一、两栏布局
左边固定,右边自适应
1.通过设置浮动实现。
需要两个div实现,一个div设置浮动,并设置宽度,另一个div可以不用设置任何东西
如果要给右边块设置什么的话下面两种方法也行:
- left左浮动并设置宽度right设置margin-left为left的宽度也能实现
- left设置左浮动并和宽度right,right设置over-flow:hidden也能实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>两栏布局——float</title>
<style>
div{
height:300px;
}
.left{
width:200px;
background-color:gray;
float:left;
}
.main{
background-color:pink;
/* margin-left:200px; */
/* 或者overflow:hidden; */
}
</style>
</head>
<body>
<div class = 'left'></div>
<div class = 'main'></div>
</body>
</html>
2. 通过相对定位和绝对定位实现。
需要三个div,其中一个div是父容器,包含两个子元素。
两个子元素设置相对定位,给上边的子元素设置宽度,下边的子元素设置left,值为上边子元素的宽度,再设置right:0。
给父容器设置相对定位是因为可以让其设置绝对定位的子元素相对它进行移动;给上边的子元素设置绝对定位可以让下边的子元素跟它在同一行。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>两栏布局——absolue</title>
<style>
.outer{
position:relative;
height:300px;
}
.left{
position:absolute;
width:300px;
background-color:blue;
height:100%;
}
.main{
background-color:yellow;
position:absolute;
left:300px;
right:0;
height:100%;