CSS-Grid网格

CSS grid网格

grid网格布局功能强大,属性蛮多。

我参考阮一峰老师网络日记,记录下我认为常用属性

兼容性

在这里插入图片描述

设置父元素displaygrid,父级区域会被分划成网格,具有块级元素特性 ,若要有行内元素特性可以设置display:inline-grid;

  <div class="main">
        grid
    </div>
    <div class="other">
        其他
    </div>
.main {
      display: grid;
      background-color: bisque;
      width: 200px;
      height: 200px;
}
.other{
    background-color: aqua;
    width: 200px;
    height: 200px;
}

在这里插入图片描述

  • 设置行列

grid-template-columns属性用于设置列数每列的宽度

grid-template-rows属性用于设置行数与每行的高度

<div class="main">
    <div class="left b">left</div>
    <div class="contion b">center</div>
    <div class="right b">reight</div>
</div>
.main{
    display:grid;
    grid-template-columns:100px 100px 100px; //三列  每列宽度为100px
    grid-template-rows:100px; // 一行  每行高度为100px
}

在这里插入图片描述

  • grid-template-columnsgrid-template-rows所支持的值类型

    • 绝对单位px
    • 百分比
    .main{
        display:grid;
        grid-template-columns:33.3% 33.3% 33.3%; //每列宽度占父级宽度的1/3
        grid-template-rows:100px;
    }
    
    • repeat()

    接受两个参数

    grid-template-columns:repeat(3,100px);//三列,每列宽度为100px
    

    重复某种模式

    grid-template-columns:repeat(3,100px 200);//六列  100px 200px 100px 200px 100px 200px
    
    • auto 由浏览器决定宽度
    grid-template-columns:100px auto 100px;
    
    • fr 类似于百分比
    grid-template-columns:1fr 1fr 1fr;//将父级宽度平分成3份
    
    • minmax() 取值范围,接收两个参数最小值与最大值
    grid-template-columns:100px 100px minmax(50px,100px)
    
  • grid-row-gap,grid-columns-gap设置行列间距

  .main {
      display: grid;
      grid-template-columns: repeat(3,100px);
      grid-template-rows: 100px;
      grid-row-gap: 20px;
      grid-column-gap: 20px;
  }

在这里插入图片描述

grid-gapgrid-row-gap,grid-columns-gap合并写法

grid-gap:20px,20px;

效果与上图一致

  • grid-auto-flow属性设置子元素排列顺序

    为了方便展示下面例子全部用下面的html元素

    <div class="main">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
    </div>
    

grid-auto-flow 默认值为row先行后列排列

.main {
      display: grid;
      grid-template-columns: repeat(3, 100px);
      grid-template-rows: repeat(2, 100px);
      grid-row-gap: 20px;
      grid-column-gap: 20px;
}
.main div {
      border:  1px solid red;
}

在这里插入图片描述

grid-auto-flow:column;//先列后列

在这里插入图片描述

grid-auto-flow还有两个值:row demsn ,row dense 这两个值与row,column不同在于前者在排序时,不允许空区域,后者允许

  • justify-items,align-items设置单元格的放置区

值:start | end | center | stretch;,默认值stretch撑满单元格

.main {
      display: grid;
      grid-template-columns: repeat(3, 100px);
      grid-template-rows: repeat(2, 100px);
      grid-gap: 2px 2px;
      grid-auto-flow: column;
      justify-items: center;

}

.main div {
    border: 1px solid red;
    height: 100px;
}

在这里插入图片描述

  • justify-content,align-content属性为设置整个区域在容器里的水平与垂直位置

值:start | end | center | stretch | space-around | space-between | space-evenly;

flexjustify-content一样的值一样的效果

 .main {
     display: grid;
     grid-template-columns: repeat(3, 100px);
     grid-template-rows: repeat(2, 100px);
     grid-gap: 2px 2px;
     height: 300px;
     grid-auto-flow: column;
     justify-content: space-between;
     align-content: space-between;
}
.main div {
    border: 1px solid red;
    height: 100px;
}


.main {
    display: grid;
    grid-template-columns: repeat(3, 100px);
    grid-template-rows: repeat(2, 100px);
    grid-gap: 2px 2px;
    height: 300px;
    grid-auto-flow: column;
    justify-content: space-between;
    align-content: space-between;
}

.main div {
    border: 1px solid red;
    height: 100px;
}

在这里插入图片描述

  • justify-self,align-self属性只针对单个单元格

justify-self,align-selfjustify-content,align-content等属性区别:

  1. 前者针对单个单元格

  2. 后者针对所有的单元格

  3. 前者的属性值与后者属性值相同

 .main {
     display: grid;
     grid-template-columns: repeat(3, 100px);
     grid-template-rows: repeat(2, 100px);
     grid-gap: 2px 2px;
     height: 300px;
     grid-auto-flow: column;
     justify-content: space-between;
     align-content: space-between;
}

.main div {
    border: 1px solid red;
    height: 100px;
}

.main div:nth-child(1) {
    justify-self: center;
    align-self: center;
    width: 50px;
    height: 50px;

}

在这里插入图片描述
参考:

阮一峰的网络日志-CSS Grid 网格布局教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值