• grid布局笔记


    1、应用 display: grid 的元素。这是所有网格项(Grid Items)的直接父级元素。即容器


    2、网格容器(Grid Container)的子元素(直接子元素)。


    3、注意:在 网格容器(Grid Container) 上使用column,float,clear, vertical-align 不会产生任何效果。


    4、grid-template-columns / grid-template-rows

    – <track-size>: 可以是长度值,百分比,或者等份网格容器中可用空间(使用 fr 单位)
    – <line-name>:你可以选择的任意名称
    grid-template-columns: repeat(3, 10px) 5%
    eg:
    .container {
    grid-template-columns: <track-size> ... | <line-name> <track-size> ...;
    grid-template-rows: <track-size> ... | <line-name> <track-size> ...;
    }

    5、grid-template-areas

    通过引用 grid-area 属性指定的 网格区域(Grid Area) 名称来定义网格模板。重复网格区域的名称导致内容跨越这些单元格。
    一个点号(.)代表一个空的网格单元。这个语法本身可视作网格的可视化结构。
    值:
    grid-area-name:由网格项的 grid-area 指定的网格区域名称
    .(点号) :代表一个空的网格单元
    none:不定义网格区域

    6、grid-template

    用于定义 grid-template-rows ,grid-template-columns ,grid-template-areas 缩写 (shorthand) 属性。
    值:
    none:将所有三个属性设置为其初始值
    subgrid:将grid-template-rows,grid-template-columns 的值设为 subgrid,grid-template-areas设为初始值
    grid-template-rows / grid-template-columns:将 grid-template-columns 和 grid-template-rows 设置为相应地特定的值,并且设置grid-template-areas为none

    7、justify-items 沿着 行轴线(row axis) 对齐 网格项(grid items) 内的内容,该值适用于容器内的所有网格项。

    start:将内容对齐到网格区域(grid area)的左侧
    end:将内容对齐到网格区域的右侧
    center:将内容对齐到网格区域的中间(水平居中)
    stretch:填满网格区域宽度(默认值)
    网格项的内容相当于网格的宽度(水平)


    8、align-items 沿着 列轴线(column axis) 对齐 网格项(grid items) 内的内容。

    start:将内容对齐到网格区域(grid area)的顶部
    end:将内容对齐到网格区域的底部
    center:将内容对齐到网格区域的中间(垂直居中)
    stretch:填满网格区域高度(默认值)

    9、网格合计大小可能小于其 网格容器(grid container) 大小时,使用justify-content设置网格容器内的网格的对齐方式, 此属性沿着 行轴线(row axis) 对齐网格


    start:将网格对齐到 网格容器(grid container) 的左边
    end:将网格对齐到 网格容器 的右边
    center:将网格对齐到 网格容器 的中间(水平居中)
    stretch:调整 网格项(grid items) 的宽度,允许该网格填充满整个 网格容器 的宽度
    space-around:在每个网格项之间放置一个均匀的空间,左右两端放置一半的空间
    space-between:在每个网格项之间放置一个均匀的空间,左右两端没有空间
    space-evenly:在每个栅格项目之间放置一个均匀的空间,左右两端放置一个均匀的空间

    10、网格合计大小可能小于其 网格容器(grid container) 大小时,使用align-content设置网格容器内的网格的对齐方式, 此属性沿着 列轴线(column axis) 对齐网格

    start:将网格对齐到 网格容器(grid container) 的顶部
    end:将网格对齐到 网格容器 的底部
    center:将网格对齐到 网格容器 的中间(垂直居中)
    stretch:调整 网格项(grid items) 的高度,允许该网格填充满整个 网格容器 的高度
    space-around:在每个网格项之间放置一个均匀的空间,上下两端放置一半的空间
    space-between:在每个网格项之间放置一个均匀的空间,上下两端没有空间
    space-evenly:在每个栅格项目之间放置一个均匀的空间,上下两端放置一个均匀的空间

    11、grid-auto-columns / grid-auto-rows

    指定任何自动生成的网格轨道(grid tracks)(又名隐式网格轨道)的大小。
    在你明确定位的行或列(通过 grid-template-rows / grid-template-columns),超出定义的网格范围时,隐式网格轨道被创建了。
    eg:
    .item-a {
    grid-column: 1 / 2;
    grid-row: 2 / 3;
    }
    .item-b {
    grid-column: 5 / 6;
    grid-row: 2 / 3;
    }

    12、grid-auto-flow

    如果你有一些没有明确放置在网格上的网格项(grid items),自动放置算法 会自动放置这些网格项。该属性控制自动布局算法如何工作。
    值:
    row:告诉自动布局算法依次填充每行,根据需要添加新行
    column:告诉自动布局算法依次填入每列,根据需要添加新列
    dense:告诉自动布局算法在稍后出现较小的网格项时,尝试填充网格中较早的空缺
    eg:
    <section class="container">
    <div class="item-a">item-a</div>
    <div class="item-b">item-b</div>
    <div class="item-c">item-c</div>
    <div class="item-d">item-d</div>
    <div class="item-e">item-e</div>
    </section>
    .container {
    display: grid;
    grid-template-columns: 60px 60px 60px 60px 60px;
    grid-template-rows: 30px 30px;
    grid-auto-flow: row;
    }
    .item-a {
    grid-column: 1;
    grid-row: 1 / 3;
    }
    .item-e {
    grid-column: 5;
    grid-row: 1 / 3;
    }
    设置为row时中间未设置起始线的bcd会按行自动排列
    设置为column时中间为设置起始线的bcd会按照列自动排列(先排满第一列再排下一列)

    13、grid综合写法

    .container {
    grid: none | <grid-template-rows> / <grid-template-columns> | <grid-auto-flow> [<grid-auto-rows> [/ <grid-auto-columns>]];
    }

     

    子元素属性

    14、通过指定 网格线(grid lines) 来确定网格内 网格项(grid item) 的位置。
    grid-column-start / grid-row-start 是网格项目开始的网格线,grid-column-end / grid-row-end 是网格项结束的网格线。
    line :可以是一个数字引用一个编号的网格线,或者一个名字来引用一个命名的网格线
    span number :该网格项将跨越所提供的网格轨道数量
    span name :该网格项将跨越到它与提供的名称位置
    auto :表示自动放置,自动跨度,默认会扩展一个网格轨道的宽度或者高度
    eg:
    .item-a {
    grid-column-start: 2;
    grid-column-end: five;
    grid-row-start: row1-start
    grid-row-end: 3
    }
    如果没有声明指定 grid-column-end / grid-row-end,默认情况下,该网格项将占据1个轨道(即一行或者一列)

    15、grid-column / grid-row

    分别为 grid-column-start + grid-column-end 和 grid-row-start + grid-row-end 的缩写形式。

    16、grid-area

    为网格项提供一个名称,以便可以 被使用网格容器 grid-template-areas 属性创建的模板进行引用。
    另外,这个属性可以用作grid-row-start + grid-column-start + grid-row-end + grid-column-end 的缩写。
    eg:.item-d {
    grid-area: header
    }
    eg:.item-d {
    grid-area: 1 / col4-start / last-line / 6
    }

    17、justify-self 沿着 行轴线(row axis) 对齐 网格项 内的内容,此值适用于单个网格项内的内容。

    start:将内容对齐到网格区域的左侧
    end:将内容对齐到网格区域的右侧
    center:将内容对齐到网格区域的中间(水平居中)

    stretch:填充整个网格区域的宽度(这是默认值)


    18、align-self 沿着 列轴线(column axis) 对齐 网格项 内的内容,此值适用于单个网格项内的内容。

    start:将内容对齐到网格区域的顶部
    end:将内容对齐到网格区域的底部
    center:将内容对齐到网格区域的中间(垂直居中)
    stretch:填充整个网格区域的高度(这是默认值)
  • 相关阅读:
    C#成员设计建议
    基于任务的异步编程模式(TAP)的错误处理
    基于任务的异步编程模式(TAP)
    C#克隆
    C#操作excel打印
    父元素如何围住浮动子元素
    intellij idea创建第一个动态web项目
    Idea快捷键
    Python中列表的copy方法
    C++读取数量不定的数据
  • 原文地址:https://www.cnblogs.com/qdcnbj/p/9934286.html
Copyright © 2020-2023  润新知