zoukankan      html  css  js  c++  java
  • CSS Grid 布局学习笔记

    CSS Grid 布局学习笔记

    好久没有写博客了, MDN 上关于 Grid 布局的知识比较零散, 正好根据我这几个月的实践对 CSS Grid 布局做一个总结, 以备查阅.

    1. 基础用法

    Grid 布局的核心属性有5个:

    .parent {
        display: grid;
        grid-template-columns: 30px 1fr;
        grid-template-rows: repeat(3, 30px) 1fr;
        & > .child {
            grid-column: 1 / 3;
            grid-row: 1;
        }
    }
    

    总的来说, Grid 布局就是: 父元素先定义好自己有几行几列. 然后, 子元素定义自己在第几行第几列(可以跨越多行或者多列).

    其中, display 属性大家应该很熟悉了吧? 这里不再多说.

    repeat函数表示将1个css值重复n遍.

    gird-column可以拆分为grid-column-startgrid-column-end两个属性.

    gird-row可以拆分为grid-row-startgrid-row-end两个属性.

    参考:

    2. grid-template-areasgrid-area

    grid-template-areas这个属性其实有点象形文字的意思.

    
    .parent {
        display: grid;
        grid-template-colomns: 100px 1fr;
        grid-template-rows: 1fr 50px;
        grid-template-areas:
            "nav    content"
            "footer footer ";
    
        & > .item1 {
          grid-area: nav;
        }
        & > .item2 {
          grid-area: content;
        }
        & > .item3 {
          grid-area: footer;
        }
    }
    
    

    上面我们将父元素分成了4格. 然后将左上的格子命名为nav, 右上的格子命名为content, 底部的格子命名为footer.

    最后, 我们只需要在子元素中指定自己属于哪个区域就可以了.

    这样写有一个好处: 我们再也不用写枯燥难懂的grid-columngrid-row了, 可以给自己的区域起一个语义化的名字

    参考:

    3. row-gap, colomns-gap, grid-gap

    类似各种框架(Bootstrap, Element, iView), Grid 布局也支持行间距和列间距.

    grid-gaprow-gapcolomns-gap的合并.

    grid-gap也可以简写为gap.

    注意: colomns-gap 的默认值是 normal, 表示列间距为1em

    参考:

    4. grid-auto-columnsgrid-auto-rows

    如果你事先不知道你的网格有几行(有几列), 这两个属性可以帮到你. 就像字面意思一样, 这个属性表示自增长的网格行(列)的高度(宽度)

    尤其是当你渲染一个不定长度的列表的时候, 这个属性会非常有用.

    例如:

    .parent {
        display: grid;
        grid-template-colomns: 1fr;
        grid-auto-rows: 100px;
    
        & > .child {
            grid-column: 1;
        }
    }
    

    参考:

  • 相关阅读:
    tomcat 启动超时
    读书笔记-String
    读书笔记-集合
    读书笔记-算法
    多变量梯度下降
    多变量线性回归
    梯度下降算法在线性回归中的运用
    梯度下降
    线性回归——代价函数
    线性回归
  • 原文地址:https://www.cnblogs.com/forzhaokang/p/9394405.html
Copyright © 2011-2022 走看看