尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

三列布局三大方案对比总结

三列布局三大方案对比总结
📅 发布时间:2026/6/30 1:26:02

CSS三列布局 3种方式详细对比分析:
网页标准结构:左固定侧边栏 + 中间自适应内容 + 右固定侧边栏

一、 inline-block 行内块布局
实现原理
给三个盒子设置 display: inline-block ,让块元素横向并排,分别设定宽度、间距完成三栏排列,搭配 vertical-align: top 统一顶部对齐。

优点:写法简单古老,极低版本浏览器都兼容

其代码如下:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 设置视口,适配移动端 --> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>经典三列布局:通过display改变元素性质来实现</title> <style> /* 全局初始化,清除所有元素默认的内外边距 */ * { margin: 0; padding: 0; } /* 顶部导航栏样式 */ #navigator { /* 宽度占满整个屏幕 */ width: 100%; /* 导航栏高度 */ height: 30px; /* 背景颜色:橙色 */ background-color: orange; /* 文字水平居中 */ text-align: center; } /* 中间内容区域总容器 */ #content { /* 宽度占满整个屏幕 */ width: 100%; /* 内容区域高度 */ height: 800px; } /* 左侧红色栏 */ #div1 { /* 宽度占父容器的10% */ width: 10%; /* 高度占父容器的100% */ height: 100%; /* 背景颜色:红色 */ background-color: red; /* 将块级元素转为行内块元素,实现横向并排 */ display: inline-block; } /* 中间绿色栏(核心) */ #div2 { /* 重要说明: 正常三列总和应为 10% + 80% + 10% = 100% 但是 display: inline-block 元素(行内块元素)之间, 默认规则是HTML代码中的换行、空格会被浏览器解析成一个空白间隙 所以必须把宽度从 80% 缩小为 79%,腾出空间给这个空白间隙 否则三列总宽度会超出100%,导致第三列被挤到下一行 */ width: 79.5%; /* 高度占父容器的100% */ height: 100%; /* 背景颜色:绿色 */ background-color: green; /* 将块级元素转为行内块元素,实现横向并排 */ display: inline-block; } /* 右侧蓝色栏 */ #div3 { /* 宽度占父容器的10% */ width: 10%; /* 高度占父容器的100% */ height: 100%; /* 背景颜色:蓝色 */ background-color: blue; /* 将块级元素转为行内块元素,实现横向并排 */ display: inline-block; } /* 底部页脚样式 */ #footer { /* 宽度占满整个屏幕 */ width: 100%; /* 页脚高度 */ height: 30px; /* 背景颜色:橙色 */ background-color: orange; /* 文字水平居中 */ text-align: center; } </style> </head> <body> <!-- 顶部导航栏 --> <div id="navigator">网页导航栏</div> <!-- 中间三列内容区域 --> <div id="content"> <div id="div1">左侧栏</div> <div id="div2">中间内容区</div> <div id="div3">右侧栏</div> </div> <!-- 底部页脚 --> <div id="footer">网页页脚</div> </body> </html>

效果图:

二、position 绝对定位布局
实现原理
父盒子相对定位,左右两栏用 position: absolute 固定左右位置,脱离正常文档流;中间盒子用左右margin,手动让出两侧宽度。
优点:定位精准,左右栏位置完全固定不受内容影响

其代码如下:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>经典三列布局:position定位实现</title> <style> /* 全局初始化,清除所有元素默认的内外边距 */ * { margin: 0; padding: 0; } #navigator { width: 100%; height: 30px; background-color: orange; text-align: center; } #content { width: 100%; height: 800px; /* 父容器设置相对定位,作为子元素绝对定位的参考基准 */ position: relative; } #div1 { width: 10%; height: 100%; background-color: red; /* 设置绝对定位,固定在父容器左侧 */ position: absolute; /* 距离父容器左侧0像素 */ left: 0; /* 距离父容器顶部0像素 */ top: 0; } #div2 { width: 80%; height: 100%; background-color: green; /* 设置绝对定位,位于左侧栏右边 */ position: absolute; /* 距离父容器左侧10%(刚好在左侧栏后面) */ left: 10%; /* 距离父容器顶部0像素 */ top: 0; } #div3 { width: 10%; height: 100%; background-color: blue; /* 设置绝对定位,固定在父容器右侧 */ position: absolute; /* 距离父容器右侧0像素 */ right: 0; /* left: 90%; */ /* 距离父容器顶部0像素 */ top: 0; } #footer { width: 100%; height: 30px; background-color: orange; text-align: center; } </style> </head> <body> <div id="navigator">网页导航栏</div> <div id="content"> <div id="div1">左</div> <div id="div2">中</div> <div id="div3">右</div> </div> <div id="footer">网页页脚</div> </body>

效果图:

三、Flex 弹性布局(现代首选)
实现原理
父盒子 display: flex 开启弹性布局,左右栏写固定宽度,中间内容 flex:1 自动占满所有剩余空间。
优点:

1. 写法极简,一行代码搞定横向排列

2. 中间栏完美自适应剩余宽度,窗口缩放自动适配

3. 默认等高对齐,垂直水平居中一键控制

4. 自带 gap 设置安全间距,不会重叠、没有缝隙bug

5. 响应式、换行适配极强,移动端完美兼容

其代码如下:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Flex实现三列布局</title> <style> /* 全局初始化,清除默认内外边距 */ * { margin: 0; padding: 0; box-sizing: border-box; } /* 导航栏样式 */ #navigator { width: 100%; height: 40px; background-color: orange; text-align: center; line-height: 40px; } /* 内容容器:Flex布局核心 */ #content { width: 100%; min-height: 500px; /* 开启Flex布局 */ display: flex; } /* 左侧栏 */ #div1 { background-color: red; /* 电脑端宽度 */ width: 10%; } p { width: 10%; height: 30px; border: 2px black solid; margin-right: 15px; margin-bottom: 15px; } /* 中间内容栏 */ #div2 { background-color: green; /* 电脑端宽度 */ width: 80%; display: flex; /* 允许弹性盒内部的项目自动换行 */ flex-wrap: wrap; /* 弹性盒内部的项目按行向交叉轴起点对齐 */ align-content: flex-start; } /* 右侧栏 */ #div3 { background-color: blue; /* 电脑端宽度 */ width: 10%; } /* 页脚样式 */ #footer { width: 100%; height: 40px; background-color: orange; text-align: center; line-height: 40px; } </style> </head> <body> <div id="navigator">网页导航栏</div> <div id="content"> <div id="div1">左侧栏</div> <div id="div2"> <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > <p>1</p > </div> <div id="div3">右侧栏</div> </div> <div id="footer">网页页脚</div> </body> </html>

效果图:

总结:inline缝隙多易错位,定位脱离文档流易乱版,Flex自适应强、写法简单,全能通用

相关新闻

  • 专业iOS激活锁绕过工具applera1n:5分钟恢复iPhone 6s-X使用权限
  • TI TPIC7710EVM评估模块:汽车EPB系统ASIC驱动与电机控制实战解析
  • 合肥第三期《AI产品经理训练营》授课心得

最新新闻

  • 国内大学生论文季必用的AI论文软件有哪些?
  • 精密锰铜电阻全解析:选型避坑与实战案例
  • Java的MethodHandle动态调用点缓存与反射在性能热点上的权衡
  • Java 基础 (Java 入门笔记) _
  • 【计算机毕业设计案例】交互式网络博文分享交流平台基于 SpringBoot 实现 知识分享型在线博客管理系统设计与开发(程序+文档+讲解+定制)
  • OpenMontage:基于开源AI模型的全链路自动化视频生成框架实战

日新闻

  • 【计算机毕业设计案例】基于 Spring Boot+Vue 的电影售票系统设计与实现 前后端分离架构下影院在线购票管理平台(程序+文档+讲解+定制)
  • 到底 TMD 用哪个: npm, pnpm, Yarn, Bun, Deno? 傻瓜, 当然用 npm 啦
  • Google限制Meta使用Gemini模型 凸显AI授权竞争白热化

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号