• CSS布局之栅格布局


    栅格(grid)是一种自适应布局,能根据不同终端自动伸缩容器的宽高。flex根据轴线(axis)布局,看起来像是一维布局;而grid针对网格线(grid line)布局,看起来更像是二维布局。

    跟flex一样,grid由栅格容器(grid container)栅格项目(grid item)组成。

    栅格容器

    通过display: grid可以将元素声明为块级栅格容器,通过display: inline-grid可以将元素声明为行内栅格容器。

    1. grid属性

    grid是一个复合属性,包括grid-template-rowsgrid-template-columnsgrid-template-areasgrid-auto-rowsgrid-auto-columnsgrid-auto-flow六个属性的合并。

    1. grid-template-rows属性

    grid-template-rows属性,定义每一行的高度。

    2. grid-template-columns属性

    grid-template-columns属性,定义每一列的宽度。

    这两个属性除了可以用合理的长度单位之外,还有一些专用的属性值。
    repeat(int,<length>):重复某个值,第1个参数为重复次数,第2个值为长度
    auto-fill: 自动填充
    fr: fraction(片段),表示比例关系
    minmax(<length>,<length>): 数字在这两个范围内浮动
    auto: 自动计算长度
    
    每个长度之前还可以指定网格线的名字,例如
    .container {
      display: grid;
      grid-template-columns: [c1] 100px [c2] 100px [c3] auto [c4];
      grid-template-rows: [r1] 100px [r2] 100px [r3] auto [r4];
    }
    

    3. grid-template-areas属性

    grid-template-areas属性,定义每个单元格所属的区域;

    // 以九宫格为例,按行书写
    grid-template-areas: "a b c" "d e f" "g h i";
    

    4. grid-auto-rows属性

    grid-auto-rows属性,表示自动计算项目的高度。

    // 在2*3的容器内,指定某个元素在第4行第2列,此时多出来的单元格高度都为30px
    grid-auto-rows: 30px
    

    5. grid-auto-columns属性

    grid-auto-columns,表示自动计算项目的宽度。

    // // 在2*3的容器内,指定某个元素在第4行第2列,此时多出来的单元格宽度都为30px
    grid-auto-columns: 30px
    

    6. grid-auto-flow属性

    grid-auto-flow属性,表示自动排序项目的方式。

    grid-auto-flow: row | column | row dense | column dense;
    

    7. justify-content属性

    justify-content属性,表示容器内容的水平排列方向;

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

    8. align-content属性

    align-content属性,表示容器内容的垂直排列方向;

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

    9. place-content属性

    place-content属性是align-contentjustify-content两个属性的合并

    place-content: <align-content> <justify-content>
    

    10. justify-items属性

    justify-items属性,表示单元格内容的水平对齐方式;

    justify-items: start | end | center | stretch;
    

    11. align-items属性

    align-items属性,表示单元格内容的垂直对齐方式;

    align-items: start | end | center | stretch;
    

    12. place-items属性

    place-items属性是align-itemsjustify-items属性的合并。

    place-items: <align-items> <justify-items>;
    

    栅格项目

    1. grid-row-start属性
      grid-row-start属性,表示单元格内容的起始栅格线序号;
    grid-row-start: <number>;
    
    1. grid-row-end属性
      grid-row-end属性,表示单元格内容的终止栅格线序号;
    grid-row-end: <number>;
    
    1. grid-column-start属性
      grid-column-start属性,表示单元格内容的起始栅格线序号;
    grid-column-start: <number>;
    
    1. grid-column-end属性
      grid-column-end属性,表示单元格内容的终止栅格线序号;
    grid-column-end: <number>;
    
    1. grid-column属性
      grid-column属性是grid-column-start属性和grid-column-end属性的合并;
    grid-column: <grid-column-start> <grid-column-end>;
    
    1. grid-row属性
      grid-row属性是grid-row-start属性和grid-row-end属性的合并;
    grid-row: <grid-row-start> <grid-row-end>;
    
    1. justify-self属性

    justify-self属性,指定单元格内容的水平排列方向;

    justify-self: start | end | center | stretch;
    
    1. align-self属性
      align-self属性,指定单元格内容的垂直排列方向;
    align-self: start | end | center | stretch;
    
    1. place-self属性

    place-self属性是justify-selfalign-self属性的合并。

    place-self: <align-self> <justify-self>;
    
  • 相关阅读:
    从一个面试题看程序员的几项基本功
    成为顶尖的AI算法工程师,你该具备些什么?
    LeetCode 图解 | 30.串联所有单词的子串
    程序猿在等电梯时都在想什么?
    以后要是再写 for 循环,我就捶自己
    一起刷题学习 Git/SQL/正则表达式
    LeetCode 图解 | 191.位 1 的个数
    如何利用寒假的时间来准备 2020 年的蓝桥杯?
    VC中调用WebBrowser
    关于SSL证书的学习与总结
  • 原文地址:https://www.cnblogs.com/juetan/p/13210411.html
Copyright © 2020-2023  润新知