首页 > 其他分享 >圣杯布局 | 双飞翼布局

圣杯布局 | 双飞翼布局

时间:2023-06-20 14:47:02浏览次数:29  
标签:float 圣杯 布局 100px 双飞翼 margin left

一、圣杯布局

圣杯布局需要将中间栏放在前面优先渲染

圣杯布局利用浮动、负边距、相对定位来实现

  • 父元素 container 设置左右 padding 空出左右两栏位置。
  • 三栏均设置向左浮动,中间栏设置 width: 100%; ,即与父元素宽度一样,将左右两栏挤到下面。
  • 设置 margin 属性为负值将左右两栏移到上面,margin-left: -100%; 可以上移到上一行最左边, margin-left: -100px; 可以上移到上一行最右边(100px 是右边栏宽度)。
  • 利用相对定位,将左右两栏定位到两边
<div class = "container">
  <div class = "center">center</div>
  <div class = "left">left</div>
  <div class = "right">right</div>
</div>
.container {
  padding: 0px 100px;
  min-width: 300px;
  overflow: hidden;
}
.left {
  float: left;
  position: relative;
  left: -100px;
  margin-left: -100%;
  width: 100px;
  background-color: red;
}
.center {
  float: left;
  width: 100%;
  background-color: green;
}
.right {
  float: left;
  position: relative;
  left: 100px;
  margin-left: -100px;
  width: 100px;
  background-color: blue;
}

二、双飞翼布局

 双飞翼布局在中间栏增加了一个节点 inner 来使左右两侧的空间空开。

相对于圣杯布局,双飞翼布局左右两栏位置的保留通过设置中间栏的 margin 来实现,其他方面同样利用浮动和负边距实现

  • 三栏均设置向左浮动,中间栏设置 width: 100%;,将左右两栏挤到下面,同圣杯布局。
  • 设置 margin 属性为负值将左右两栏移到上面,同圣杯布局,此时左右两栏各在最左边和最右边。
  • 设置 inner 盒子的 margin 属性将两侧空开。
<div class="container">
  <div class="center">
    <div class="inner">inner</div>
  </div>
  <div class="left">left</div>
  <div class="right">right</div>
</div>
.container {
  overflow: hidden;
}
.left {
  float: left;
  margin-left: -100%;
  width: 100px;
  background-color: red;
}
.center {
  float: left;
  width: 100%;
}
.inner {
  margin: 0px 100px;
  background-color: green;
}
.right {
  float: left;
  margin-left: -100px;
  width: 100px;
  background-color: blue;
}

 

 三、异同点

相同点:

(1)布局类似,都是实现特定需求的三列布局。

(2)都使用了float浮动向左脱离文档流,让左中右三列浮动,通过父外边距形成三列布局。

不同点:

  • 实现方法不同
    • 圣杯布局是通过float搭建布局+margin使三列布局到一行上+relative相对定位调整位置。
    • 双飞翼布局是通过float+margin,没有使用相对定位
  • 两列的位置不同
    • 圣杯布局是给外部容器加padding,通过相对定位把两边定位出来。
    • 双飞翼布局是靠在中间这层外面套一层divpadding将内容挤出来中间

 

参考资料:CSS 经典布局实现-圣杯布局、双飞翼布局 - 掘金 (juejin.cn)

 

标签:float,圣杯,布局,100px,双飞翼,margin,left
From: https://www.cnblogs.com/le-cheng/p/17493561.html

相关文章

  • vue学习第24天 移动WEB开发------ rem适配布局
    目标:1)能够使用rem单位2)能够使用媒体查询的基本语法3)能够使用Less的基本语法4)能够使用Less中的嵌套5)能够使用Less中的运算6)能够使用2中rem适配方案7)能够独立完成xx移动端首页 思考:1、页面布局文字随屏幕大小变化而变化2、流式布局......
  • vue学习第21天 移动WEB开发 --- flex布局(弹性布局)
    学习目标1、flex盒子的布局原理2、flex布局的常用属性3、独立完成某个移动端首页案例 目录1、flex布局体验2、flex布局原理3、flex布局父项常见属性4、flex布局子项常见属性5、案例制作  ......
  • vue学习第18天 css --- 移动web开发 (单独/响应式、常见布局【单独:流式、flex、rem
    学习目标: 目录: 移动端基础 1、浏览器现状  2、手机屏幕现状 3、常见移动端屏幕尺寸查看地址: https://www.strerr.com/screen.html注:作为前端开发,不用纠结dp,dpi,pt,ppi等单位。 4、移动端调试方法 5、......
  • 流式布局怎么实现?响应式布局怎么实现?
    一、流式布局怎么实现场景:关键词搜索、热门标签等场景上面一行的的空间不够容纳新的TextView时候才开辟下一行的空间按照页面元素的宽度按照屏幕分辨率进行适配调整,但整体布局不变,使用%百分比定义宽度高度大都是用px来固定,可以根据可视区域和父元素的实时尺寸来调整,尽可......
  • 布局性能优化:安卓开发者不可错过的性能优化技巧
    今天总结一下布局的性能优化,这是一个系列,上一篇是#内存泄漏大集结:安卓开发者不可错过的性能优化技巧也可以看性能优化专栏里的记录,都是非常好的开发经验。当我们开发Android应用时,布局性能优化是一个必不可少的过程。一个高效的布局能够提高用户体验,使应用更加流畅、响应更加迅速......
  • Android进阶宝典 -- CoordinatorLayout协调者布局原理分析并实现吸顶效果
    1CoordinatorLayout功能介绍首先我们先从源码中能够看到,CoordinatorLayout只实现了parent接口(这里如果不清楚parent接口是干什么的,建议看看前面的文章,不然根本不清楚我讲的是什么),说明CoordinatorLayout只能作为父容器来使用。publicclassCoordinatorLayoutextendsViewGroupim......
  • (五)flex弹性布局、flex容器属性、flex项目属性
    一、flex弹性布局 二、flex容器属性  三、flex项目属性 ......
  • 如何修改ollydbg默认布局
     我使用的是吾爱改版的OD,工具栏点击出现布局选项    ......
  • 武汉星起航:亚马逊宠物市场热度不断,跨境卖家如何布局
    亚马逊作为全球最大的在线零售平台之一,宠物用品市场在其平台上呈现出强劲的增长趋势。随着人们对宠物的关注度不断提升,宠物用品成为一个蓬勃发展的市场。下面是星起航对亚马逊宠物用品市场的分析。市场规模:宠物用品市场规模逐年增长。根据统计数据,全球宠物用品市场价值已超过1000亿......
  • 结构布局
     <!DOCTYPEhtml><html><head><metacharset="utf-8"><metaname="author"content="http://www.softwhy.com/"/><title></title><styletype="text/css">*{margin:0;......