方法一:浮动+margin

实现方法:左栏向左浮动,右栏向右浮动,中间栏不设宽度,用左右margin来撑开距离。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS三栏布局</title><style>body {margin: 0;padding: 0;}.left {width: 200px;height: 300px;background-color: #DC698A;float: left;}.right {width: 300px;height: 500px;background-color: #3EACDD;float: right;}.middle {height: 800px;background-color: #8CB08B;margin: 0 300px 0 200px;}</style></head><body><div class="left">左栏</div><div class="right">右栏</div><div class="middle">中间栏</div></body>
</html>

注意:该方法在html布局时,要把中间栏放在左栏,右栏的后面,左栏和右栏的顺序不定。这就导致主列所显示的主页面无法率先加载,影响用户体验。

方法二:绝对定位法

实现方法:左栏,右栏绝对定位,分别固定到页面左右两侧,中间栏宽度自适应,用左右margin来撑开距离。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS三栏布局</title><style>body {margin: 0;padding: 0;}.left {width: 200px;height: 300px;background-color: #DC698A;position: absolute;top: 0;left: 0;}.middle {height: 800px;background-color: #8CB08B;margin: 0 300px 0 200px;}.right {width: 300px;height: 500px;background-color: #3EACDD;position: absolute;top: 0;right: 0;}</style></head><body><div class="left">左栏</div><div class="middle">中间栏</div><div class="right">右栏</div></body>
</html>

方法三:浮动+margin负值法

实现方法:左右两栏宽度固定,中间栏宽度100%,中间栏,左栏,右栏向左浮动,左栏的margin-left设为-100%,右栏的margin-left设为-右栏宽度。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS三栏布局</title><style>body {margin: 0;padding: 0;}.middle {width: 100%;height: 500px;background-color: #8CB08B;float: left;}.left {width: 200px;height: 500px;background-color: #DC698A;float: left;margin-left: -100%;}.right {width: 300px;height: 500px;background-color: #3EACDD;float: left;margin-left: -300px;}</style></head><body><div class="middle">中间栏</div><div class="left">左栏</div><div class="right">右栏</div></body>
</html>

注意:该方法在html布局时,要把中间栏放在第一个,但这种情况会出现左右列覆盖中间列的情况。

方法四:圣杯布局

实现方法:在上一个方法的基础上增加了padding-left,padding-right,position:relative。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS三栏布局</title><style>body {margin: 0;padding: 0;}.container {padding-left: 200px;padding-right: 300px;}.middle {width: 100%;height: 800px;background-color: #8CB08B;float: left;}.left {width: 200px;height: 500px;background-color: #DC698A;float: left;margin-left: -100%;position: relative;left: -200px;}.right {width: 300px;height: 500px;background-color: #3EACDD;float: left;margin-left: -300px;position: relative;right: -300px;}</style></head><body><div class="container"><div class="middle">中间栏</div><div class="left">左栏</div><div class="right">右栏</div></div></body>
</html>

此方法的优点是主列率先加载,允许任何列是最高的。

方法五:双飞翼布局

实现方法:在第三种方法的基础上为中间列增加一个父div,让这个父div的宽度为100%,float: left,设置中间列的左右边距。

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS三栏布局</title><style>body {margin: 0;padding: 0;}.wrap {width: 100%;float: left;}.middle {height: 800px;background-color: #8CB08B;margin-left: 200px;margin-right: 300px;}.left {width: 200px;height: 500px;background-color: #DC698A;float: left;margin-left: -100%;}.right {width: 300px;height: 500px;background-color: #3EACDD;float: left;margin-left: -300px;}</style></head><body><div class="wrap"><div class="middle">中间栏</div></div><div class="left">左栏</div><div class="right">右栏</div></body>
</html>

此方法优点是率先加载中间列,允许任何列是最高的。

方法六:Flex布局

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>CSS三栏布局</title><style>body {margin: 0;padding: 0;}.container {display: flex;}.left {flex-grow: 1;height: 200px;background-color: #DC698A;}.middle {flex-grow: 3;height: 800px;background-color: #8CB08B;}.right {flex-grow: 1;height: 300px;background-color: #3EACDD;}</style></head><body><div class="container"><div class="left">左栏</div><div class="middle">中间栏</div><div class="right">右栏</div></div></body>
</html>

此方法优点:简单高效

转载于:https://www.cnblogs.com/sunshine21/p/10880904.html

六种方法实现CSS三栏布局相关推荐

  1. 三种方法实现CSS三栏布局

    本文由云+社区发表 作者:前端林子 本文会分别介绍三种CSS实现三栏布局的方法,可在浏览器中打开查看效果 1.方法一:自身浮动的方法 实现方法:需要左栏向左浮动,右栏向右浮动,中间设左右margin来 ...

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

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

  3. css三栏布局技巧,CSS-三栏布局的常用6种方法

    三栏布局一般指左右两栏固定宽度,中间一栏自适应的布局方法,也是许多网站常用的布局方式.如下图: 该示例在一个html文件中编写,为方便起见,预先写好一个通用的css,左右宽度都为100px: 1.浮动 ...

  4. CSS || 三栏布局,两边固定,中间自适应

    1 float实现 基于纯float实现的三栏布局需要将中间的内容放在HTML结构的最后,否则右侧会沉在中间内容的下侧 原理:元素浮动后,脱离文档流,后面的元素受浮动影响,设置受影响元素的margin ...

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

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

  6. CSS三栏布局的四种方法

    1.绝对定位法 <div class="left">Left</div> <div class="main">Main< ...

  7. css flex布局 padding,css三栏布局的三种实现方式(圣杯布局、双飞翼布局、Flex布局)...

    本篇文章给大家带来的内容是关于LNMP以源码的方式记录环境搭建的过程(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果图: 圣杯布局 圣杯 .container{ padd ...

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

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

  9. CSS多栏布局-两栏布局和三栏布局

    目录 前言 ------两栏布局 一.左列定宽,右列自适应 1.浮动+margin 2.浮动+BFC 3.定位 4.flex 5.浮动+负外边距 6.table布局 二.左列不定宽,右列自适应 1.f ...

最新文章

  1. java zookeeper_Java zookeeper开发实例
  2. 小程序json字符串转 json对象 { name :你好} 转成 { name :你好}
  3. python获取url参数 类继承_python之类的继承
  4. 制作精良、意犹未尽的异色推理小剧场《Tangle Tower 缠结塔》
  5. LiveVideoStack线上分享第五季(五):用FFmpeg搭建基于CNN的视频分析方案
  6. api php usdt 以太坊_以太坊智能地址PHP开发包【零GAS归集ERC20】
  7. iaas层次化结构--从业务需求到设计需求
  8. rabbitmq 持久化_RabbitMQ原理与相关操作(三)消息持久化
  9. 利用循环队列的思想进行加密解密(洛谷P1914题题解,Java语言描述)
  10. linux 下自动重启tomcat的脚本(支持shell杀进程)
  11. Excel学习笔记002-005:如何按列提取不重复值
  12. UGUI- 单列列表(VerticalLayoutGroup)
  13. 20.TCP/IP 详解卷1 --- TCP 的成块数据流
  14. 第十二届蓝桥杯模拟赛Python组(第三期)
  15. mac全选文字的快捷键_mac全选的快捷键是什么?苹果电脑全选的快捷键是什么?...
  16. 用Changedetection监控网页的变化
  17. Deepin搭建Qt5开发环境
  18. 禅道项目管理系统安装后显示为空白
  19. C#版 - Leetcode 306. 累加数 - 题解
  20. 华擎j3455装服务器系统,华擎J3455M主板u盘重装系统win8教程

热门文章

  1. Python 之 matplotlib (十一) 3D
  2. 认知AI的兴起:2025年AI将会发生质的飞跃
  3. 谷歌前CEO:美国科技优势面临最危险时刻
  4. 百度地图发布专网地图时空数据托管平台,构建智慧城市数字底盘
  5. 前沿研究丨基于驾驶脑的智能驾驶车辆硬件平台架构
  6. ICLR认知科学@AI workshop一览
  7. 2020年AI怎么发展?听加州大学、谷歌、英伟达、IBM怎么说
  8. 动荡的 2019:数据和 AI 生态圈
  9. IBM发布未来五年五大科技预测
  10. 周志华:最新实验表明gcForest已经是最好的非深度神经网络方法