grid布局方式

参考博客 CSS Grid 网格布局教程 作者: 阮一峰

什么是Grid布局?

网格布局(Grid)是最强大的 CSS 布局方案。它将网页划分成一个个网格,可以任意组合不同的网格,可以做出各种各样的布局。它与flex布局有些相似,但是flex只能针对轴线排列,是一维布局,而grid将容器划分为了行和列,是二维布局,简单的来说就是grid布局比flex布局牛逼太多。

先来看看grid布局有哪些属性

和flex一样,采用grid布局的元素称为’容器’,容器内部的子元素称为’项目’。

容器上的属性
  • display: grid 指定一个容器采用网格布局
  • grid-template-columns 定义每一列的列宽
  • grid-template-rows 定义每一行的行高
    • repeat() 接受两个参数,第一个参数是重复的次数(上例是3),第二个参数是所要重复的值
    • fr 关键字 如果两列的宽度分别为1fr和2fr,就表示后者是前者的两倍
    • minmax()函数产生一个长度范围,表示长度就在这个范围之中。它接受两个参数,分别为最小值和最大值。
    • auto 关键字 浏览器自动设置长度
  • row-gap 设置行间距
  • column-gap 设置列间距
  • gap 间距的简写
  • grid-template-areas 指定区域
  • grid-auto-flow 默认是row先行后列,column是先列后行
  • justify-items属性设置单元格内容的水平位置
  • align-items属性设置单元格内容的垂直位置
  • place-items属性是合并简写形式
  • justify-content属性是整个内容区域在容器里面的水平位置
  • align-content属性是整个内容区域在容器里面的垂直位置
项目上的属性
  • grid-column-start属性:左边框所在的垂直网格线
  • grid-column-end属性:右边框所在的垂直网格线
  • grid-row-start属性:上边框所在的水平网格线
  • grid-row-end属性:下边框所在的水平网格线
  • grid-column属性是grid-column-start和grid-column-end的合并简写形式
  • grid-row属性是grid-row-start属性和grid-row-end的合并简写形式
  • grid-area属性指定项目放在哪一个区域
  • justify-self属性设置单元格内容的水平位置
  • align-self属性设置单元格内容的垂直位置

下面逐个介绍各个属性的用法

容器属性

grid-template-columns 属性和grid-template-rows 属性
.box{
   	display: grid;
    grid-template-columns: 100px 200px 100px; //可以设置绝对单位
    grid-template-columns: 1fr 2fr 1fr; //fr关键字
    grid-template-columns: repeat(auto-fill, 100px); //auto-fill关键字,当容器宽度不知道时可以使用auto-fill让子元素先在同一行上排列,第一行排满后再换行
    grid-template-columns: 20% 60% 20%; //可以设置百分比
    grid-template-rows: repeat(3, 50px); //reapeat()函数
}
gap属性

gap属性是row-gap(行间距) 和 column-gap(列间距)的 简写形式

.box{
   	 display: grid;
   	 gap: 10px 20px;
}
grid-template-areas 属性
.box{
    display: grid;
    grid-template-areas: "header header header"
                        "main main side"
                        "footer footer footer"; 
}
grid-auto-flow 属性
.box{
    display: grid;
    grid-auto-flow: column; //先列后行
}
justify-items 属性,align-items 属性,place-items 属性

justify-items属性设置单元格内容的水平位置(左中右),align-items属性设置单元格内容的垂直位置(上中下),place-items 属性是他们两个的简写属性。
属性值有
start:对齐单元格的起始边缘。
end:对齐单元格的结束边缘。
center:单元格内部居中。
stretch:拉伸,占满单元格的整个宽度(默认值)。

justify-content 属性,align-content 属性,place-content 属性

这些属性表示整个内容区域在容器里面的水平垂直位置
属性值有:
start
end
center
stretch
space-around每个项目两侧的间隔相等
space-between项目与项目的间隔相等,项目与容器边框之间没有间隔
space-evenly;项目与项目的间隔相等,项目与容器边框之间也是同样长度的间隔

项目属性

grid-column-start 属性(左),grid-column-end 属性(右),grid-row-start 属性(上),grid-row-end 属性(下)

指定项目的四个边框

grid-area属性

grid-area: / / / ;
它可以作为合写属性指定边框

justify-self 属性,align-self 属性,place-self 属性

设置单元格内容的水平垂直位置
属性值start | end | center | stretch;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flex布局是一种新的CSS布局方式,常常用于构建响应式布局。它通过对容器和其中的项目进行属性的设置,来实现自适应和灵活性的布局。具体实现方式如下: 1.在容器的样式中设置display: flex,表示使用Flex布局。 2.在容器的样式中设置flex-direction属性,来决定主轴的方向。主轴是指容器中项目排列的方向,可以是水平的row,也可以是垂直的column。 3.在容器的样式中设置flex-wrap属性,来控制项目是否换行。默认情况下,项目会在一条线上排列,当项目无法一行排列时,可以使用该属性将项目分行。 4.在项目的样式中设置flex属性,来控制项目在主轴上占据的大小。该属性的值是一个比例,可以设置为具体的数值或者auto。 5.在项目的样式中设置align-self属性,来控制项目在交叉轴(不是主轴的方向)上的位置。 Grid布局是一种基于栅格的布局方式,可以将容器划分为行和列,并将项目放入相应的位置。它具有更强的灵活性和多样性。实现方式如下: 1.在容器的样式中设置display: grid,表示使用Grid布局。 2.在容器的样式中设置grid-template-rows和grid-template-columns属性,来定义行和列的大小。 3.在容器的样式中设置grid-template-areas属性,来定义各个项目在容器中的位置。该属性的值是一个字符串,可以是单词或一组单词,描述项目所在的区域。 4.在项目的样式中设置grid-row-start、grid-row-end、grid-column-start和grid-column-end属性,来定义项目的位置。也可以使用grid-row和grid-column属性缩写来设置这些属性。 以上是Flex和Grid布局的使用方法和相关参数的简要说明。具体的应用需要根据项目的需求进行灵活组合和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值