实现双飞翼布局的三种方式
使用定位来实现
实现流程:
1.父盒子相对定位,左右 padding 为子盒子宽度,左右子盒子绝对定位,宽度写死;
2.左边子盒子 left top 给 0,右边子盒子 right top 给 0;
3.中间的盒子宽度给 100%
html结构
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>* {margin: 0;padding: 0;}.box {height: 200px;position: relative;padding: 0 210px;}.box div {height: 100%;}.left {width: 200px;position: absolute;left: 0;top: 0;background-color: pink;}.center {width: 100%;background-color: green;}.right {width: 200px;position: absolute;right: 0;top: 0;background-color: yellow;}</style></head><body><div class="box"><!-- 1.父盒子相对定位,左右 padding 为子盒子宽度,左右子盒子绝对定位,宽度写死;2.左边子盒子 left top 给 0,右边子盒子 right top 给 0;3.中间的盒子宽度给 100%--><div class="left"></div><div class="center"></div><div class="right"></div></div></body>
</html>
使用浮动来实现
实现流程
1.给父盒子设置左右 padding ,距离为左右子盒子的宽度;
2.给左右盒子设置宽度,写死,左中两个盒子 左浮动 ,右边盒子右浮动;
3.给左边盒子设置 margin-left ,右边盒子设置 margin-right,均为负值,大小为自身的宽度;
4.中间盒子宽度设置 100%
html结构
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>* {margin: 0;padding: 0;}.box {height: 200px;padding: 0 210px;}.box div {height: 100%;}.left {width: 200px;float: left;margin-left: -210px;background-color: pink;}.center {width: 100%;float: left;background-color: green;}.right {width: 200px;float: right;margin-right: -210px;background-color: yellow;}</style></head><body><div class="box"><!-- 1.给父盒子设置左右 padding ,距离为左右子盒子的宽度;2.给左右盒子设置宽度,写死,左中两个盒子 左浮动 ,右边盒子右浮动;3.给左边盒子设置 margin-left ,右边盒子设置 margin-right,均为负值,大小为自身的宽度;4.中间盒子宽度设置 100%--><div class="left"></div><div class="center"></div><div class="right"></div></div></body>
</html>
使用flex布局实现
实现流程
1.父盒子设置 display:flex,左右子盒子宽度写死;
2.中间的盒子宽度给 100% 或者 flex:1;
html结构
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>* {margin: 0;padding: 0;}.box {height: 200px;/* padding: 0 210px; */display: flex;}.box div {height: 100%;}.left {width: 200px;background-color: pink;}.center {/* width: 100%; */flex: 1;background-color: green;}.right {width: 200px;background-color: yellow;}</style></head><body><div class="box"><!-- 1.父盒子设置 display:flex,左右子盒子宽度写死;2.中间的盒子宽度给 100% 或者 flex:1;--><div class="left"></div><div class="center"></div><div class="right"></div></div></body>
</html>