前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web前端学习 第2章 网页重构16 grid布局

Web前端学习 第2章 网页重构16 grid布局

原创
作者头像
学习猿地
修改2020-06-15 14:42:52
9560
修改2020-06-15 14:42:52
举报
文章被收录于专栏:学习猿地

一、grid布局概述

grid布局与flex布局对比

grid布局可以为网页提供更强大的布局功能,它与flex布局的区别是。

  • flex布局为一维布局,一般一行或一列的布局使用flex布局。
  • grid布局为二维布局,同时需要兼顾行与列的布局,可以使用gird布局。

如果不考虑兼容问题,flex布局和grid布局可以很好地替代浮动布局。

grid布局基本概念

grid容器的水平区域成为行(row),垂直区域成为列(column),行与列之间的较差与是单元格(cell),划分网格的线成为网格线(gird line),了解了这些基本概念之后,就可以开始用相应的css属性设置grid容器中的项目了。

二、grid容器

设置gird容器

通过下面代码可以将一个容器设置成为一个grid容器。

代码语言:javascript
复制
1 .container{
2     display:grid;
3 }

gird容器内部的元素称为grid容器的项目,grid项目的float属性会失效,通过grid容器的进一步设置,可以让内部的项目按要求排列。

grid-template-columns属性与grid-template-rows属性

grid-template-columns可以设置gird容器中的项目有多少列,并指定列的宽度,实例代码如下所示

代码语言:javascript
复制
 1  <div class="container">
 2     <div class="item">1</div>
 3     <div class="item">2</div>
 4     <div class="item">3</div>
 5     <div class="item">4</div>
 6     <div class="item">5</div>
 7     <div class="item">6</div>
 8     <div class="item">7</div>
 9     <div class="item">8</div>
10     <div class="item">9</div>
11 </div>
代码语言:javascript
复制
1 .container{
2     display:grid;
3     grid-template-columns: 100px 100px 100px;
4 }
5 .item{
6     border:1px solid red;
7 }

通过上面的样式设置,可以将grid容器设置成为三列,并将每一列的宽度设置为100px。

除了设置制定尺寸的像素,还可以通过fr单位设置列宽度的比例。修改上面的grid容器样式如下所示

代码语言:javascript
复制
1 .container{
2     display:grid;
3     grid-template-columns: 1fr 1fr 2fr;
4 }

可以看到整个gird容器的列被4等分,其中第一列和第二列占1份(1fr),第三列占2份(2fr)。

gird-template-rows属性可以设置gird容器中的项目有多少行,并指定行的宽度,实例代码如下所示:

代码语言:javascript
复制
.container{
    display:grid;
    grid-template-columns: 100px 100px 100px;
    grid-template-rows: 100px 100px 100px;
}

通过上面的样式,可以将grid容器设置成为一个三行三列的布局,并且每一个单元格都为100px。

grid-column-gap属性与grid-row-gap属性

grid-column-gap属性与grid-row-gap属性可以为grid容器的航宇列之间设置间距,示例代码如下所示:

代码语言:javascript
复制
1 .container {
2     display: grid;
3     grid-template-columns: 100px 100px 100px;
4     grid-template-rows: 100px 100px 100px;
5     grid-row-gap: 20px;
6     grid-column-gap: 30px;
7 }

通过上面的样式,可以将行(row)之间的间距设置为20像素,将列(column)之间的间距设置为30像素。

justify-items属性与align-items属性

justify-items属性与align-items属性可以设置单元的水平位置和垂直位置,实例代码如下所示:

代码语言:javascript
复制
.container {
    display: grid;
    grid-template-columns: 100px 100px 100px;
    grid-template-rows: 100px 100px 100px;
    /* 在单元格内水平居中 */
    justify-items: center;
    /* 在单元格内存执居中 */
    align-items: center;
}

默认的情况下,grid容器单元格内的块元素会适应单元的的宽度和高度,设置justify-items后,单元格内的元素会适应自身内容的宽度,设置align-items后,单元格内的元素会使用内容的高度。

将justify-items和align-items两个属性设置为center,可以将单元格内的内容垂直水平居中显示。

justify-content属性与aling-content属性

通过justify-content属性与aling-content属性可以设置整个内容区域在容器里面的水平位置和垂直位置。

三、grid项目

justify-self属性与align-self属性
  • justify-self属性可以设置单元格内容的水平位置。
  • align-self属性可以设置单元内容的垂直位置。
grid-column-start属性与grid-column-end属性

指定左右边框垂直网格线

grid-row-start属性与grid-row-end属性

指定上下边框水平网格线

四、课后练习

  1. 使用grid布局实现一个圣杯布局。
  2. 结合grid布局和flex布局实现融职教育的首页。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、grid布局概述
    • grid布局与flex布局对比
      • grid布局基本概念
      • 二、grid容器
        • 设置gird容器
          • grid-template-columns属性与grid-template-rows属性
            • grid-column-gap属性与grid-row-gap属性
              • justify-items属性与align-items属性
                • justify-content属性与aling-content属性
                • 三、grid项目
                  • justify-self属性与align-self属性
                    • grid-column-start属性与grid-column-end属性
                      • grid-row-start属性与grid-row-end属性
                      • 四、课后练习
                      相关产品与服务
                      容器服务
                      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档