1、float实现三栏布局

给左盒子设置float:left,给右盒子设置float:right,中间盒子设置margin-left和margin-right。需要注意的是,左右盒子要放在中间盒子之前。代码如下:

<!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>
</head>
<body><div class="left">left</div><div class="right">right</div><div class="middle">middle</div>
</body>
<style>*{margin: 0px;padding: 0px;height: 700px;}.left{float: left;width: 200px;background-color: aqua;}.right{float: right;width: 300px;background-color: aquamarine;}.middle{margin-left: 200px;margin-right: 300px;background-color: bisque;}
</style>
</html>

2、absolute实现三栏布局

给左右盒子设置position:absolute,给左盒子设置left:0;top:0,给右盒子设置right:0;top:0;给中间盒子设置margin-left和margin-right。代码如下:

<!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>
</head>
<body><div class="left">left</div><div class="middle">middle</div><div class="right">right</div>
</body>
<style>*{margin: 0;padding: 0;height: 700px;}.left{position: absolute;top: 0;left: 0;width: 200px;background-color: aqua;}.right{position: absolute;top: 0;right: 0;width: 300px;background-color: aquamarine;}.middle{margin: 0 300px 0 200px;background-color: antiquewhite;}
</style>
</html>

3、flex实现三栏布局

给父元素设置display:flex,给中间的盒子设置flex:1。代码如下:

<!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>
</head>
<body><div class="left">left</div><div class="middle">middle</div><div class="right">right</div>
</body>
<style>*{margin: 0;padding: 0;height: 700px;}body{display: flex;}.left{width: 200px;background-color: aqua;}.right{width: 300px;background-color: aquamarine;}.middle{flex: 1;background-color: antiquewhite;}
</style>
</html>

4、table实现三栏布局

给父元素设置display:table,给子元素都设置display:table-cell。代码如下:

<!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>
</head>
<body><div class="left">left</div><div class="middle">middle</div><div class="right">right</div>
</body>
<style>*{margin: 0;padding: 0;height: 700px;}body{display: table;width: 100%;}.left{display: table-cell;width: 200px;background-color: aqua;}.middle{display: table-cell;background-color: antiquewhite;}.right{display: table-cell;width: 300px;background-color: aquamarine;}
</style>
</html>

5、grid实现三栏布局

给父元素设置:display:grid;grid-template-colums:左盒子宽度 auto 右盒子宽度;grid-template-rows:高度。代码如下:

<!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>
</head>
<body><div class="left">left</div><div class="middle">middle</div><div class="right">right</div>
</body>
<style>*{margin: 0;padding: 0;}body{display: grid;grid-template-columns: 200px auto 300px;grid-template-rows: 700px;}.left{background-color: aqua;}.middle{background-color: antiquewhite;}.right{background-color: aquamarine;}
</style>
</html>

6、calc实现三栏布局

给三个盒子都设置float:left,给中间盒子设置:width:calc(100% - 左右盒子宽度之和)。代码如下:

<!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>
</head>
<body><div class="left">left</div><div class="middle">middle</div><div class="right">right</div>
</body>
<style>*{margin: 0;padding: 0;height: 700px;width: 100%;}.left{float: left;width: 200px;background-color: aqua;}.middle{float: left;width: calc(100% - 500px);background-color: antiquewhite;}.right{float: left;width: 300px;background-color: aquamarine;}
</style>
</html>

7、圣杯布局实现三栏布局

给父元素设置margin-left和margin-right,给三个盒子都设置float:left,左盒子设置position:relative;left:-宽度;margin-left:-100%,右盒子设置right:-宽度;margin-right:-宽度,中间盒子设置:width:100%。需要注意的是,中间的盒子要放在左右盒子之前。代码如下:

<!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>
</head>
<body><div class="middle">middle</div><div class="left">left</div><div class="right">right</div>
</body>
<style>*{margin: 0;padding: 0;height: 700px;}body{margin-left: 200px;margin-right: 300px;}.left{position: relative;float: left;width: 200px;margin-left: -100%;left: -200px;background-color: aqua;}.middle{float: left;width: 100%;background-color: antiquewhite;}.right{float: left;width: 300px;margin-right: -300px;right: -300px;background-color: aquamarine;}
</style>
</html>

8、双飞翼布局实现三栏布局

给三个盒子都设置:float:left,给中间的盒子增加一个内盒子,给内盒子设置margin-left和margin-right,中间盒子设置:width:100%,左盒子设置:margin-left:-100%;右盒子设置:margin-left:-宽度。代码如下:

<!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>
</head>
<body><div class="container"><div class="middle">middle</div></div><div class="left">left</div><div class="right">right</div>
</body>
<style>*{margin: 0;padding: 0;height: 700px;}.container{float: left;width: 100%;background-color: antiquewhite;}.left{float: left;width: 200px;margin-left: -100%;background-color: aqua;}.middle{margin-left: 200px;margin-right: 300px;}.right{float: left;width: 300px;margin-left: -300px;background-color: aquamarine;}
</style>
</html>

CSS实现三栏布局的8种方式相关推荐

  1. css的经典三栏布局如何实现,css 实现三栏布局的四种方式

    三栏布局就是左中右,左右两边固定,中间自适应. 1. 绝对定位 左边 中间 右边 body { padding: ; margin: ; } /* 绝对定位 */ .left, .right { po ...

  2. CSS实现多栏布局的几种方式

    css实现多栏布局的几种方式 假如把下面的三个div显示在同一行 <div id="parent"><div id="box1">1&l ...

  3. CSS三栏布局的7种方式代码详解 | 圣杯布局 | 双飞翼布局 | 弹性盒子

    CSS三栏布局代码详解 写在前面:博主最近在转头复习最前面学的CSS,整理一下CSS三栏布局的笔记,正好也捋顺自己的逻辑思路.解析我尽量按照思路详细的写了,代码均可正确运行,留给需要的小伙伴进行参考, ...

  4. css实现三栏布局的几种方法及优缺点

    三栏布局,顾名思义就是两边固定,中间自适应. 三栏布局在实际的开发十分常见,比如淘宝网的首页,就是个典型的三栏布局:即左边商品导航和右边导航固定宽度,中间的主要内容随浏览器宽度自适应. 我们不妨假定这 ...

  5. 三栏布局的几种实现方式

    三栏布局是一种经典的页面布局:在网页上以平铺方式展现的左中右三列布局,其特点在于,左右两列可固定在网页两侧,中间一列永远居中,且当网页宽度大于左右两列宽度之和时,中间一列可随网页整体宽度的变化而变化( ...

  6. CSS实现三栏布局(5种)

    常见的布局方式: float布局.Position定位.table布局.弹性(flex)布局.网格(grid)布局 那么我们就是用以上5种方式完成三栏布局,不过前提是左右宽度(假如左右宽度为300px ...

  7. html5+css3网页制作:三栏布局宽度自适应,css三栏布局的五种写法,中间自适应,左右宽度固定...

    假设高度已知,请写出三栏布局,其中左右各位300px,中间自适应 1.左右浮动 .left { float: left; width: 300px; background: red; } .right ...

  8. 实现三栏布局的几种方法

    前言 三栏布局,顾名思义就是两边固定,中间自适应.三栏布局在实际的开发十分常见,比如淘宝网的首页,就是个典型的三栏布局:即左边商品导航和右边导航固定宽度,中间的主要内容随浏览器宽度自适应. 我们不妨假 ...

  9. 前端经典面试题之CSS实现三栏布局,左右宽度固定,中间宽度自适应

    前端常问的面试题,题目:假设高度一定,请写出三栏布局,左右宽度300px,中间自适应. 看到这里我希望你能停下来思考几分钟, 1分钟~2分钟~3分钟~4分钟~5分钟! 好了,那么你想出了几种答案呢? ...

最新文章

  1. mysql binlog 恢复 表_MySQL通过Binlog恢复删除的表
  2. Vim - 文本替换
  3. 倒车辅助Park Assist
  4. linux下性能监控工具
  5. python 乱码转码_Python解决乱码问题
  6. VUE之监听属性 watch
  7. SAP UI5 应用开发教程之五十二 - 如何使用 SAP UI5 的标准控件结合 Cordova 插件调用手机摄像头进行条形码扫描试读版
  8. 阿里云宣布3年再投2000亿
  9. kali linux2.0下MariaDB修改密码
  10. SDUTOJ3468_广度优先搜索练习之神奇的电梯(BFS + 用vector建图)
  11. REEM-C的安装与启动
  12. (46)FPGA同步复位与异步复位(异步复位)
  13. iview关闭抽屉弹层时清空Select弹框高亮样式
  14. python镜像安装教程_PIP镜像方式安装PYTHON包步骤
  15. 光纤交换机配置zone
  16. 科学计算机算方差与期望,期望、方差、协方差及相关系数的基本运算
  17. 网络威胁情报git【全面】
  18. chrome浏览器添加crx插件
  19. 李航·《统计学习方法》学习笔记
  20. PHP+ mysql实现注册登录功能

热门文章

  1. Thindpad T430u折腾小攻略
  2. 深圳南山科技园一公司年终发10台高尔夫奖优秀员工
  3. Top 10 JavaScript编辑器,你在用哪个? 1
  4. ASEMI整流二极管1N4007参数,1N4007规格,1N4007厂家
  5. 【vcpkg】POCO库编译链接总结
  6. VBA 实例:Word 转 TXT
  7. 必备的c语言入门自学教程2021新版!
  8. ION-DTN网络设计思想(一)
  9. 单片机双机通信c语言实验心得,80C51单片机双机通信与多机通信的使用方法
  10. filter()过滤