博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS三栏布局的四种方法
阅读量:7093 次
发布时间:2019-06-28

本文共 2847 字,大约阅读时间需要 9 分钟。

前言

总括: 不管是三栏布局还是两栏布局都是我们在平时项目里经常使用的,也许你不知道什么事三栏布局什么是两栏布局但实际已经在用,或许你知道三栏布局的一种或两种方法,但实际操作中也只会依赖那某一种方法,本文具体的介绍了三栏布局的四种方法,并介绍了它的使用场景。

  • 原文地址:

  • 知乎专栏&&简书专题:&&

  • 博主博客地址:

年华一去不复返,事业放弃再难成。

正文

所谓三栏布局就是指页面分为左中右三部分然后对中间一部分做自适应的一种布局方式。

1.绝对定位法

HTML代码如下:

Left
Main
Right
复制代码

CSS代码如下:

//简单的进行CSS resetbody,html{    height:100%;    padding: 0px;    margin:0px;}//左右绝对定位.left,.right{    position: absolute;    top:0px;    background: red;    height:100%;}.left{    left:0;    width:100px;}.right{    right:0px;    width:200px;}//中间使用margin空出左右元素所占据的空间.main{    margin:0px 200px 0px 100px;    height:100%;    background: blue;}复制代码

该方法有个明显的缺点,就是如果中间栏含有最小宽度限制,或是含有宽度的内部元素,当浏览器宽度小到一定程度,会发生层重叠的情况。

2. 圣杯布局

HTML代码如下:

//注意元素次序
Main
Left
Right
复制代码

CSS代码如下:

//习惯性的CSS resetbody,html{    height:100%;    padding: 0;    margin: 0}//父元素body空出左右栏位body {    padding-left: 100px;    padding-right: 200px;}//左边元素更改.left {    background: red;    width: 100px;    float: left;    margin-left: -100%;    position: relative;    left: -100px;    height: 100%;}//中间部分.main {    background: blue;    width: 100%;    height: 100%;    float: left;}//右边元素定义.right {    background: red;    width: 200px;    height: 100%;    float: left;    margin-left: -200px;    position: relative;    right: -200px;}复制代码

相关解释如下:

  • (1)中间部分需要根据浏览器宽度的变化而变化,所以要用100%,这里设左中右向左浮动,因为中间100%,左层和右层根本没有位置上去
  • (2)把左层margin负100后,发现left上去了,因为负到出窗口没位置了,只能往上挪
  • (3)按第二步这个方法,可以得出它只要挪动窗口宽度那么宽就能到最左边了,利用负边距,把左右栏定位
  • (4)但由于左右栏遮挡住了中间部分,于是采用相对定位方法,各自相对于自己把自己挪出去,得到最终结果

3. 双飞翼布局

HTML代码如下:

Main
Left
Right
复制代码

CSS代码如下:

//CSS resetbody,html {    height:100%;    padding: 0;    margin: 0}body {    /*padding-left:100px;*/    /*padding-right:200px;*/}.left {    background: red;    width: 100px;    float: left;    margin-left: -100%;    height: 100%;    /*position: relative;*/    /*left:-100px;*/}.main {    background: blue;    width: 100%;    float: left;    height: 100%;}.right {    background: red;    width: 200px;    float: left;    margin-left: -200px;    height: 100%;    /*position:relative;*/    /*right:-200px;*/}//新增inner元素.inner {    margin-left: 100px;    margin-right: 200px;}复制代码

圣杯布局实际看起来是复杂的后期维护性也不是很高,在淘宝UED的探讨下,出来了一种新的布局方式就是双飞翼布局,代码如上。增加多一个div就可以不用相对布局了,只用到了浮动和负边距。和圣杯布局差异的地方已经被注释。

4. 浮动

HTML代码如下:

//注意元素次序
Left
Right
Main
复制代码

CSS代码如下:

//CSS resetbody,html {    height:100%;    padding: 0;    margin: 0}//左栏左浮动.left {    background: red;    width: 100px;    float: left;    height: 100%;}//中间自适应.main {    background: blue;    height: 100%;    margin:0px 200px 0px 100px;}//右栏右浮动.right {    background: red;    width: 200px;    float: right;    height: 100%;}复制代码

这种方式代码足够简洁与高效,也容易理解

后记

四种方法其实只有圣杯布局和双飞翼布局较难理解,但实际上理解了圣杯布局,双飞翼布局自然就理解了。

转载地址:http://fiiql.baihongyu.com/

你可能感兴趣的文章
oracle10g创建用户
查看>>
span 换行与不换行
查看>>
js获取年、月、日、时、分、秒
查看>>
课程助理For Windows(预览版,正方教务系统学生查分工具)
查看>>
Java程序如何自动在线升级
查看>>
LibLinear(SVM包)使用说明之(三)实践
查看>>
John von Neumann和Ulam
查看>>
Type mismatch: cannot convert from MainFragment to Fragment 报错
查看>>
RS485中继器电路(转)
查看>>
控制台打印二叉树
查看>>
Android 5.x特性概览四
查看>>
【python】——小程序之电话薄
查看>>
Atitit.iso格式蓝光 BDMV 结构说明
查看>>
MySQL的create table as 与 like区别(转)
查看>>
Linux学习历程(持续更新整理中)
查看>>
Linux查看物理CPU个数、核数、逻辑CPU个数
查看>>
软件设计模式详解:OCP原则
查看>>
Apache服务器常规操作
查看>>
qt cef嵌入web
查看>>
Java程序员面试失败的5大原因
查看>>