文章目录

  • 什么是圣杯布局
  • 圣杯布局的特点
  • 怎么实现圣杯布局
  • 完整代码展示
  • 双飞翼布局

什么是圣杯布局

圣杯布局是一个两侧宽度固定,中间宽度自适应的三栏布局

圣杯布局的特点

  1. 中间部分在DOM结构上优先,以便先行渲染
  2. 允许三列中的任意一列成为最高列(三列高度不一样并且可以以任一列的高度为最高)

怎么实现圣杯布局

  1. 写下HTML代码
 <div class="container"><div class="main">中间</div><div class="left">左边</div><div class="right">右边</div></div>
  1. 使三栏都处于左浮状态,并且使中间栏的宽度成父容器的100%
   .container {min-width: 400px;height: 200px;}.main {width: 100%;height: 100px;float: left;background-color:red;}.left {width: 200px;height: 200px;background-color: skyblue;float: left;}.right {width: 150px;height: 150px;background-color: skyblue;float: left;}

  1. 为主容器设置左右padding的值,使其以后为侧边栏定位空出位置,padding的值为侧边栏的宽
.container {/*预留出位置  */padding-left: 200px;padding-right: 150px;}


4. 为两侧侧边栏加上负margin,用以调整位置。其中左边栏设为margin-left:-100%,而右边栏的margin-left则为负的其自身宽度(利用了浮动元素的负margin到一定值后会使其自身往上一行移动的原理)

   .left {margin-left: -100%;}.right {margin-left: -150px;}



5. 为左边栏和右边栏添加position:relative,然后对它们进行定位移动到两侧

 .left {position: relative;left: -200px;}.right {position: relative;right: -150px;}


完整代码展示

<style>body {margin: 0;padding: 0;} .container {min-width: 400px;height: 200px;/*预留出位置  */padding-left: 200px;padding-right: 150px;}.main {width: 100%;height: 100px;float: left;background-color:red;}.left {width: 200px;height: 200px;background-color: skyblue;float: left;margin-left: -100%;position: relative;left: -200px;}.right {width: 150px;height: 150px;background-color: skyblue;float: left;margin-left: -150px;position: relative;right: -150px;}
</style>
<body><div class="container"><div class="main">中间</div><div class="left">左边</div><div class="right">右边</div></div>
</body>

双飞翼布局

双飞翼布局参考我的另一篇博客
双飞翼布局

圣杯布局原来这么简单!!相关推荐

  1. CSS简单实现圣杯布局和双飞翼布局

    一.你能学到什么? ①如何使用css变量 ②实现圣杯布局和双飞翼的简单思路 ③了解浮动和margin的特性 css变量设置(两个布局都有的部分) :root{/* 左边栏宽度 */--lw:300px ...

  2. 使用flex实现圣杯布局,就是这么简单

    flex布局其实挺香的,但是现在国内好多pc网页还是传统的float+position布局,可能是考虑到兼容性或者以前的系统吧,用flex实现的圣杯布局特点如下,整体分上中下三部分,中间部分高度自适应 ...

  3. 三种方式实现圣杯布局

    圣杯布局的三种实现 圣杯布局是一种很常见的css布局.他要求: 上部和下部各自占领屏幕所有宽度. 上下部之间的部分是一个三栏布局. 三栏布局两侧宽度不变,中间部分自动填充整个区域. 中间部分的高度是三 ...

  4. CSS 圣杯布局升级版---多个固定宽度一个自适应宽度

    1.一个div固定,一个div自适应宽度.两种情况,固定在左或者在右. HTML: <div class="box1"><div class="main ...

  5. 八十九、常见的圣杯布局和双飞翼布局

    @Author:Runsen 圣杯布局和双飞翼布局是前端工程师需要日常掌握的重要布局方式. 圣杯布局 圣杯布局是经典的css布局,左右两栏的宽度固定不变,中间那一栏是自适应. 使用弹性盒子布局实现圣杯 ...

  6. 经典的三栏布局:圣杯布局,双飞翼布局,flex布局

    需求: 两边栏固定宽度,中间宽度自适应,一般左边栏为导航,右边栏为广告,中间栏为主要内容的展示,div块上中间栏放在第一位,重要的东西放在文档流前面可以优先渲染. 圣杯布局和双飞翼布局的共同特点都是利 ...

  7. 不懂圣杯布局?5种方式包教包会

    前言 本文针对圣杯布局(两边固定,中间自适应布局)以五种方式进行讲解,话不多说,现在开始 方式一:float布局 利用float实现圣杯布局是最原始也是兼容性最好的方式,当然相对于其它几种来说较为复杂 ...

  8. 大厂面试必考题:三行布局之圣杯布局和双飞翼布局的区别

    前言 今天给大家分享一个圣杯布局和双飞翼布局及他们之间的区别,这两个三行布局一直是一些大厂前端面试的高频考点,带你走进大厂面试题,活不多说,冲冲冲~ 布局效果 这两个种三行布局效果是一样的,实现的效果 ...

  9. 当你试图将【圣杯布局】无限套娃__

    刚学会圣杯布局 突发奇想... 先是简单的嵌套 限界だ 同理可得{ 再用iframe再嵌套自我的克隆体_ 再在克隆体中用iframe嵌套自我的克隆体_ 再再在克隆体的克隆体中用iframe嵌套自我的克 ...

最新文章

  1. 通过 RDTSC 指令从 CPU 寄存器中直接获取系统时钟
  2. springboot全局异常处理器
  3. c++Primer再学习-练习Todo
  4. 信道编码之差错控制原理
  5. linux alias命令参数及用法详解--linux定义命令别名alias
  6. Java程序片:Java复制文件
  7. [翻译] 聚集索引表 VS 堆表
  8. 周末狂欢赛1(玩游戏/Game,函数,JOIOI王国)
  9. java学生签到系统视频教程_手把手教你做一个Java web学生信息、选课、签到考勤、成绩管理系统附带完整源码及视频开发教程...
  10. android 表格xml,【Android】利用表格布局,Android中xml文件与java的交互制作登录界面...
  11. 用深度GHOST XP SP3在虚拟机下的安装发表于 : 2009-06-21 17:02
  12. VisualStudio 2010从分析到实施(3)——使用Use Case Diagram设计系统交互
  13. teamviewer开通防火墙策略
  14. ADSL路由切换IP
  15. C# Newtonsoft JArray排序
  16. 【Windows】实现微信双开或多开
  17. php 图片木马,php图片木马实现原理
  18. uniapp小程序 触底刷新(onReachBottom)加载分页
  19. Leetcode_577_员工奖金_SQL
  20. 这是一个开始,更是一个起点

热门文章

  1. JS屏蔽功能类(屏蔽F5,退格键,空格键......
  2. 2019CSP-J组题目-加工零件
  3. 热修复——Bugly让热修复变得如此简单
  4. Data Science 到底是什么?
  5. java 实现写出倒立三角形的几种方法
  6. 宽带,猫,路由器的关系是什么?
  7. 快应用是什么软件?快应用有什么用?
  8. 高数笔记(十):定积分的概念与性质,微积分基本公式,牛顿-莱布尼兹公式,变限函数求导
  9. 洛谷P1563 [NOIP2016 提高组] 玩具谜题 C语言 通俗易懂解法
  10. 曼哈顿距离最小生成树莫队算法