资讯专栏INFORMATION COLUMN

CSS 布局方式

LancerComet / 1872人阅读

摘要:中间左栏右栏清除浮动如下图缺点结构不正确多了一层标签布局左栏中间右栏如下图缺点兼容性问题参考文章

W3C标准

由万维网联盟制定的一系列标准,包括:

结构化标准语言(HTML和XML)

表现标准语言(CSS)

行为标准语言(DOM和ECMAScript)

CSS中的定位机制

在CSS中存在三种定位机制:

标准文档流(Normal flow)

浮动(Floats)

绝对定位(Absolute positioning)

标准文档流特点

从上到下,从左到右,输出文档内容

由块级元素和行级元素组成

块级元素特点

从左到右撑满页面,独占一行

触碰到页面边缘时,会自动换行

行级元素特点

能在同一行内显示

不会改变HTML文档结构

注意: 块级元素和行级元素都是盒子模型

盒子模型

盒子模型—网页布局的基石,由4部分组成

边框(border)

外边距(margin)

内边距(padding)

盒子中的内容(content)

前三者是盒子模型的特性,最后一点可以理解为盒子模型的功能,可用于盛放网页内容,包括文本、图片、音频、视频等

盒子模型的三维立体结构

第一层:border 第二层:内容+padding 第三层:背景图片 第四层:背景颜色 第五层:外边距

盒子模型尺寸

盒子模型尺寸=边框+外边距+内边距+盒子中的内容尺寸

注意:

标准盒子模型: 宽度= 内容的宽度(content)+ border+ padding+ margin

低版本IE盒子模型: 宽度= 内容的宽度(content+ border+ padding)+ margin

区别在于内容的宽度是否包含border和padding,可通过设置box-sizing:border-box(内容宽度包含border和padding值)来实现统一

table 实现布局

最初网页出现时使用,DIV布局出现后废弃

两栏布局

两栏布局:一栏定宽,一栏自适应。这样子做的好处是定宽的那一栏可以做广告,自适应的可以作为内容主体。

实现方式

float+margin

</>复制代码

  1. 定宽
  2. 自适应
  3. .left{
  4. width: 200px;
  5. height: 600px;
  6. background: red;
  7. float: left;
  8. display: table;
  9. text-align: center;
  10. line-height: 600px;
  11. color: #fff;
  12. }
  13. .right{
  14. margin-left: 210px;
  15. height: 600px;
  16. background: yellow;
  17. text-align: center;
  18. line-height: 600px;
  19. }

如下图:

其他的方法:还可以使用position的absolute,可以使用同样的效果

三栏布局

特点:两边定宽,然后中间的width是auto的,可以自适应内容,再加上margin边距,来进行设定。

float 实现三栏布局

使用左右两栏使用float属性,中间栏使用margin属性进行撑开,注意的是html的结构

</>复制代码

  1. 左栏
  2. 右栏
  3. 中间栏
  4. .left{
  5. width: 200px;height: 300px; background: yellow; float: left;
  6. }
  7. .right{
  8. width: 150px; height: 300px; background: green; float: right;
  9. }
  10. .middle{
  11. height: 300px; background: red; margin-left: 220px; margin-right: 160px;
  12. }

如下图:

缺点:

当宽度小于左右两边宽度之和时,右侧栏会被挤下去

html的结构不正确

position 定位实现

左右两栏使用position进行定位,中间栏使用margin进行定位

</>复制代码

  1. 左栏
  2. 中间栏
  3. 右栏
  4. .left{
  5. background: yellow;
  6. width: 200px;
  7. height: 300px;
  8. position: absolute;
  9. top: 0;
  10. left: 0;
  11. }
  12. .middle{
  13. height: 300px;
  14. margin: 0 220px;
  15. background: red;
  16. }
  17. .right{
  18. height: 300px;
  19. width: 200px;
  20. position: absolute;
  21. top: 0;
  22. right: 0;
  23. background: green;
  24. }

如下图:

缺点:当父元素有内外边距时,会导致中间栏的位置出现偏差

float和BFC配合圣杯布局

将middle的宽度设置为100%,然后将其float设置为left,其中的main块设置margin属性,然后左边栏设置float为left,之后设置margin为-100%,右栏也设置为float:left,之后margin-left为自身大小。

</>复制代码

  1. 中间
  2. 左栏
  3. 右栏
  4. .wrapper{
  5. overflow: hidden; //清除浮动
  6. }
  7. .middle{
  8. width: 100%;
  9. float: left;
  10. }
  11. .middle .main{
  12. margin: 0 220px;
  13. background: red;
  14. }
  15. .left{
  16. width: 200px;
  17. height: 300px;
  18. float: left;
  19. background: green;
  20. margin-left: -100%;
  21. }
  22. .right{
  23. width: 200px;
  24. height: 300px;
  25. float: left;
  26. background: yellow;
  27. margin-left: -200px;
  28. }

如下图:

缺点:

结构不正确

多了一层标签

flex 布局

</>复制代码

  1. 左栏
  2. 中间
  3. 右栏
  4. .wrapper{
  5. display: flex;
  6. }
  7. .left{
  8. width: 200px;
  9. height: 300px;
  10. background: green;
  11. }
  12. .middle{
  13. width: 100%;
  14. background: red;
  15. marign: 0 20px;
  16. }
  17. .right{
  18. width: 200px;
  19. height: 3000px;
  20. background: yellow;
  21. }

如下图:

缺点: 兼容性问题

参考文章: https://segmentfault.com/a/11...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/113333.html

相关文章

  • CSS布局

    摘要:经过半年的打磨,正式发布,主要是新增了一些常用组件,并使用命名,为接下来的微信小程序开发做好准备。这两种方式实现的瀑布流式布局均支持首屏和网页窗口大小改变时的列数自适应。主要是对于标准里的布局方式草案中的布局方式进行一些总结。 一劳永逸的搞定 flex 布局 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候,看...

    jaysun 评论0 收藏0
  • 翻译 | CSS网格(CSS Grid)布局入门

    摘要:浏览器兼容性网格布局从开始收到支持,微软在会更新对网格布局的支持。微软的浏览器和有一种比较旧的实现,所以有不少限制,我们会简单介绍新的实现方式和老的实现方式之间的区别,这样你能知道如何规避他们。 原文地址:Getting to know CSS Grid Layout 原文作者:Chris Wright 译者:华翔 校对者:珂珂、干干 翻译 | CSS网格(CSS Grid)布局入...

    Ashin 评论0 收藏0
  • 前端-CSS3&H5

    摘要:高度模型浅识为的简写,简称为块级格式化上下文,为浏览器渲染某一区域的机制,中只有和中还增加了和。并非所有的布局都会在开发中使用,但是其中也会涉及一些知识点。然而在不同的纯制作各种图形纯制作各种图形多图预警 一劳永逸的搞定 flex 布局 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候,看到 float 属性不...

    xiaolinbang 评论0 收藏0
  • HTML-CSS

    摘要:但是,从字体上来说雪碧图制作,使用以及相关,图文。由于采用了编译,所以能够保证在浏览器不支持标准布局的情况下,回滚到旧版本的,保证移动设备中能呈现出一样的布局效果。我不想陷入和的纷争,但是有一件事是确定的极大的提升了移动端 一劳永逸的搞定 flex 布局 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候,看到 ...

    xiaokai 评论0 收藏0
  • HTML-CSS

    摘要:但是,从字体上来说雪碧图制作,使用以及相关,图文。由于采用了编译,所以能够保证在浏览器不支持标准布局的情况下,回滚到旧版本的,保证移动设备中能呈现出一样的布局效果。我不想陷入和的纷争,但是有一件事是确定的极大的提升了移动端 一劳永逸的搞定 flex 布局 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候,看到 ...

    CHENGKANG 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<