美文网首页
CSS 网格布局

CSS 网格布局

作者: 一个学前端的码农 | 来源:发表于2018-09-06 09:15 被阅读0次

网格布局(CSS grid)是一种网页设计的新布局,目前许多主流浏览器已经支持了这一布局,对前端开发人员来说,是需要了解并学会使用的一种很方便快捷的布局。

HTML布局

<div class="grid">
  <div class="title">title</div>
  <div class="header">header</div>
  <div class="sidebar">sidebar</div>
  <div class="content">
    <p>contentA</p>
    <p>contentB</p>
  </div>
  <div class="footer">footer</div>
</div>

上面的 HTML 就是一段简单的 grid 布局,我们先看看它的运行效果,其中我加了一些其他样式


image

现在,让我们为它加上网格布局代码:

.grid{
    display:grid;
    grid-template-columns:1fr 600px 600px 1fr;
    grid-template-rows:1fr 1fr 1fr 1fr;
    grid-template-areas:
    ". title title ."
    ". header header ."
    ". sidebar content ."
    ". footer footer ."
}
.title{
  grid-area:title;
}
.header{
  grid-area:header;
}
.sidebar{
  grid-area:sidebar;
}
.content{
  grid-area:content;
}
.footer{
  grid-area:footer;
}

突然间代码有点多,一个一个解释下。首先在父元素 div 中设置display:grid;表示将其设置为网格布局;然后grid-template-columns属性是设置网格中列的尺寸大小及其占据空间,上面的参数是1fr 600px 600px 1fr表示左右各留 1fr 的距离,中间网格部分占据总共 1200px;接着grid-template-rows顾名思义就是行的意思,规定以几行来呈现布局,可以看到上面有四个参数,分别为1fr,所以整个布局总共有四行,每一行的高度为 1fr , fr 是一个单位,比 px 要大些。根据上面的描述可以看到目前的预览效果是这样:

Chrome 浏览器
也许细心的你已经发现了,上面的代码还有两个属性grid-template-areasgrid-area,这两个属性官方文档里面解释了一大堆文字,我的简单理解是:规定网格布局中的区域,也就是每一行中放几个内容块。可以看到,我在 title、header、sidebar、content 和 footer 中都写上了一个属性:grid-area: 模块名,然后在grid-template-areas中把些模块名都写了上去,左右两边还多了两个.,这是为什么呢?
浏览器中的效果
其实就是把网页分成了四列,左右两边的空白就对应上面的两个" . ",然后中间" title title "表示 title 这个 div 占了两列,而第三行中的" sidebar content "就是 sidebar 和 content 这两块各占一半平分,最后的 footer 也是占了两块的。
最后,附上网格布局常用属性的官方定义,供读者参考理解

grid-template-columns:定义网格列的线名称和跟踪大小调整功能。
grid-template-rows:该属性是基于网格行的维度,去定义网格线的名称和网格轨道的尺寸大小。
grid-template-areas:属性是 grid areas 在CSS中的特定命名.
grid areas:是一种对于 grid-row-start、grid-column-start、grid-row-end 和 grid-column-end 的简写,通过基线(line),跨度(span)或没有(自动)的网格放置在 grid row 中指定一个网格项的大小和位置,继而确定 grid area 的边界。
grid-gap:指定行和列之间的间隙。

以上属性的定义来源于 MDN web ,谷歌翻译。

相关文章

  • 布局

    CSS网格布局引入了二维网格布局系统,可用于布局页面主要的区域布局或小型组件。本文介绍了CSS网格布局 与 CSS...

  • 九宫格拖拽

    效果实例 简单了解Grid布局(网格布局) 什么是网格布局 CSS网格布局(又称“网格”),是一种二维网格布局系统...

  • 九宫格拖拽

    效果实例 简单了解Grid布局(网格布局) 什么是网格布局 CSS网格布局(又称“网格”),是一种二维网格布局系统...

  • CSS Grid网格布局

    参考资料 CSS Grid 网格布局教程 - 阮一峰 概述 网格布局(Grid)是最强大的 CSS 布局方案。 它...

  • CSS Grid 网格布局

    CSS Grid 网格布局教程

  • CSS Grid

    CSS Grid Layout是CSS为布局新增的一个网格布局的模块,网格布局主要针对Web应用程序开发。 Fle...

  • CSS布局

    1、CSS Grid 网格布局教程 2、Flex 布局教程:语法篇(骰子布局,网格布局,百分百布局,圣杯布局......

  • Grid布局指南

    简介CSS网格布局(又称“网格”),是一种二维网格布局系统。CSS在处理网页布局方面一直做的不是很好。一开始我们用...

  • Grid布局(一)介绍

    一、前言 Grid布局,又叫网格布局,是最强大的CSS布局方案;Grid将网页分成了一个个的网格,通过CSS样式,...

  • 两步构建 CSS Grid

    3月7号,谷歌、火狐统一更新了浏览器,加入 CSS Grid 网格布局。为什么新的 CSS Grid 网格布局值得...

网友评论

      本文标题:CSS 网格布局

      本文链接:https://www.haomeiwen.com/subject/rbzkwftx.html