前端常用的两种布局方式:圣杯布局和双飞翼布局
程序员文章站
2022-06-08 16:30:49
...
圣杯布局和双飞翼布局:
两者实现的功能都一样,都是用于实现两侧的宽度不变,中间的宽度自适应的三栏布局
注意点:浮动的元素不会撑起父元素。
一、圣杯布局
圣杯布局的步骤:
2.1 搞一个容器,里面放三个盒子
2.2 设置两侧盒子的宽度(固定)
2.3 设置中间盒子的宽度等于容器的宽度 100%
2.4 设置容器的padding等于两侧盒子的宽度
2.5 设置三个盒子都在同一个方向浮动
2.6 设置左边盒子的margin-left =-100%
2.7 通过定位调整左边的盒子,让左边的盒子不要盖住中间的区域
2.8 设置右边的盒子的margin-left等于负自身的宽度
2.9 通过定位调整右边的盒子,让左边的盒子不要盖住中间的区域
3.0 给容器设置一个人最小的宽度,防止缩小变形
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.left,.right{
width: 200px;
height: 200px;
background-color: red;
float: left;
}
.center{
width: 100%;
height: 200px;
background-color: pink;
float: left;
}
.box{
padding: 0 200px;
background-color: purple;
overflow: hidden;
min-width: 500px;
}
.left{
margin-left: -100%;
position: relative;
left: -200px;
}
.right{
margin-left: -200px;
position: relative;
right: -200px;
}
</style>
</head>
<body>
<div class="box">
<div class="center"></div>
<div class="left"></div>
<div class="right"></div>
</div>
</body>
</html>
二、双飞翼布局
双飞翼布局的实现步骤:
1.1 搞一个容器, 里面放三个盒子
1.2 设置两侧盒子的宽度(固定)
1.3 设置中间盒子的宽度等于容器的宽度(100%)
1.4 让三个盒子都在同一个方向上浮动
1. 5 给中间的盒子添加一个子盒子
1.6 给子盒子设置margin:0 两侧盒子的宽度
1.7设置左边盒子的margin-left=-100%
1.8 设置右边盒子的margin-left=-自身的宽度
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.left,.right{
width: 200px;
height: 200px;
background-color: red;
float: left;
}
.center{
width: 100%;
height: 200px;
background-color: pink;
float: left;
}
.center_in{
height: 200px;
margin: 0 200px;
background-color: yellow;
}
.left{
margin-left: -100%;
}
.right{
margin-left: -200px;
}
.box{
background-color: purple;
overflow: hidden;
}
</style>
</head>
<body>
<div class="box">
<div class="center">
<div class="center_in"></div>
</div>
<div class="left"></div>
<div class="right"></div>
</div>
</body>
</html>
效果图如图所示: