美文网首页
Css 的网格布局

Css 的网格布局

作者: 缘之空_bb11 | 来源:发表于2024-01-04 17:27 被阅读0次

参考地址:(https://www.jianshu.com/p/e8c6f663e491)

展示:

 grid {
            display : grid;
            grid-auto-flow: row;       // 设置网格布局的方向
             
             grid-template-rows: 50px 100px;     // 设置网格列宽
             grid-template-columns: 30px 60px;   // 设置网格行高
             /*
             重复的网格轨道:
             grid-template-rows:    repeat(4, 100px);   // 设置了前4行行高 
             grid-template-columns: repeat(3, 1fr);     // 设置了前 3 列的宽度
             轨道的最小最大尺寸设置:
             grid-template-rows:   minmax(100px, auto);           // 第一行行高最小高度设置成100px
             grid-template-columns: minmax(auto, 50%) 1fr 3em;   // 第一列宽度的最大值设置成50%
             */
            
              grid-row-gap: 20px;      // 行间隙
              grid-column-gap: 20px;   // 列间隙
                /*
                 grid-gap:100px 1em;   // 第一个值表示行间隙,第二个值表示列间隙
                */
             
              grid-auto-rows:        140px;    // 隐式行高
              grid-auto-columns:      100px;   // 隐式列宽 
     }

     网格项目跨越行列:
     .item1 {
         grid-row-start: 2;       // 
         grid-row-end: 3;
         grid-column-start: 2;
         grid-column-end: 3;
             /*
             简写:
             grid-row:    2;
             grid-column: 3 / 4;
             或
             grid-row:  2 / span 3;
             grid-column: span 2;
             
             简写:
             grid-area: 2 / 2 / 3 / 3;
             
             */
     }
     

单位: fr, rem

  1. fr单位
    单位fr用于表示轨道尺寸配额,表示按配额比例分配可用空间。类似于 Css 中的 flex

2、rem单位
是相对单位;rem单位是相对于HTML标签的字号计算结果;1rem = 1HTML字号大小。
如果html标签的font-size是20px,那么1rem就是20。
网页的根标签是:html标签;html字号也叫根字号,根标签字号。
就是 20px 号字体的 一个间距

网格布局:

  • display: grid; 网格的宽度为整个容器的宽度,高度自适应

  • display: inline-grid; 宽高由自身的宽高决定

  • grid-auto-flow: row; 设置网格布局的方向, 默认: row 是 Y 轴方向, colum 是 X 轴的方向

网格高度:
 grid-template-rows: 50px 100px;  //  参数为设置每行的高度

对于后面参数的解释:
1. 已定义的: 每个参数与行是一一对应的
2. 未定义的: 行高取决于自身的高度

  • 轨道的最小最大尺寸设置:
    函数minmax()接收两个参数:第一个参数表示最小轨道尺寸,第二个参数表示最大轨道尺
    示例:
grid-template-rows:   minmax(100px, auto);

第一行最小高度设置成100px,但是最大高度设置成auto,表示行高可以根据内容伸长超过100px。

  • 重复的网格轨道:
    函数repeat()接收两个参数:第一个参数表示重复的次数,第二个参数表示轨道尺寸。
    示例:
grid-template-rows:    repeat(4, 100px);
  • 隐式网格:(我的理解就是,除了你定义的参数外的行或列的其他要展示的参数 )
    隐式网格用来在显式网格之外定位项目。有时在显示网格中没有足够的空间,或者是要在显示网格之外定位项目就要用到隐式网格。这时可以把这些项目放置在隐式网格中。
    示例:
grid {
            display : grid;
            grid-template-rows:    70px;     // 只设置了一个的行高为 70px
            grid-template-columns: repeat(2, 1fr);
            grid-auto-rows:        140px;    // 隐式行高,  除了第一行已设置的外的其他行的行高
            grid-auto-columns:      100px;   // 隐式列宽,  除了前两列的已设置的外的其他行的列宽
        }
网格宽度:
  grid-template-columns: 90px 50px 120px;    

参数为每列的宽度,并且设置此参数后,子项布局会变成一行

对于后面参数的解释:
1. 已定义的: 每个参数与列是一一对应的
2. 未定义的: 列宽取决于自身的宽度

  • 轨道的最小最大尺寸设置:
    函数minmax()接收两个参数:第一个参数表示最小轨道尺寸,第二个参数表示最大轨道尺
    示例:
grid-template-columns: minmax(auto, 50%) 1fr 3em;

第一列宽度的最大值设置成50%,表示其宽度不能超过整个容器宽度的50%。

  • 重复的网格轨道:
    函数repeat()接收两个参数:第一个参数表示重复的次数,第二个参数表示轨道尺寸。
    示例:
 grid-template-columns: repeat(3, 1fr);
隐式网格:(除了你定义的参数外的行或列的其他要展示的参数 )

隐式网格用来在显式网格之外定位项目。有时在显示网格中没有足够的空间,或者是要在显示网格之外定位项目就要用到隐式网格。这时可以把这些项目放置在隐式网格中。
示例:

grid {
            display : grid;
            grid-template-rows:    70px;     // 只设置了一个的行高为 70px
            grid-template-columns: repeat(2, 1fr);
            grid-auto-rows:        140px;    // 隐式行高,  除了第一行已设置的外的其他行的行高
          grid-auto-columns:      100px;   // 隐式列高,  除了前两列的已设置的外的其他行的列宽
        }
网格间隙:
 grid-row-gap: 20px;      // 行间隙
 grid-column-gap: 20px;   // 列间隙 
简化:  
grid-gap:100px 1em;   // 第一个值表示行间隙,第二个值表示列间隙

注意:
1.网格间隙只创建在行列之间,项目与边界之间无间隙。
2.只能在一个 View 下多行的,才有效果

网格项目跨越行列:

行和列每一条网格线编号都以1开始,以1为步长向前编号,其中包括行列两组网格线。

不仅可以将 item1 移动到对于应的位置上, 还可以设置不同的 start 和 end 可以实现对 Item 1 的跨越行列效果;

.item1 {
            grid-row-start: 2;
            grid-row-end: 3;
            grid-column-start: 2;
            grid-column-end: 3;
        }

        简写形式:
.item1 {
            grid-row:    2;      
            grid-column: 3 / 4;
        }

第一个表示 grid-row/column-start ,第二个值表示grid-row/column-end。而且你必须用斜杠(/)分隔这两个值。
如果只指定一个值,它表示 grid-row/column-start;

     .item1 {
         grid-row:    2 / span 3;
         grid-column: span 2;
     }

关键字 span 用来指定跨越行或列的数量。

    .item1 {
        grid-area: 2 / 2 / 3 / 3;
    }

属性grid-area 是 grid-row-start, grid-column-start, grid-row-end 和 grid-column-end的简写形式。

如果四个值都指定,则第一个表示 grid-row-start, 第二个表示 grid-column-start, 第三个表示 grid-row-end ,第四个表示 grid-column-end。

相关文章

  • 布局

    CSS网格布局引入了二维网格布局系统,可用于布局页面主要的区域布局或小型组件。本文介绍了CSS网格布局 与 CSS...

  • 九宫格拖拽

    效果实例 简单了解Grid布局(网格布局) 什么是网格布局 CSS网格布局(又称“网格”),是一种二维网格布局系统...

  • 九宫格拖拽

    效果实例 简单了解Grid布局(网格布局) 什么是网格布局 CSS网格布局(又称“网格”),是一种二维网格布局系统...

  • CSS Grid网格布局

    参考资料 CSS Grid 网格布局教程 - 阮一峰 概述 网格布局(Grid)是最强大的 CSS 布局方案。 它...

  • CSS Grid 网格布局

    CSS Grid 网格布局教程

  • CSS Grid

    CSS Grid Layout是CSS为布局新增的一个网格布局的模块,网格布局主要针对Web应用程序开发。 Fle...

  • Grid布局指南

    简介CSS网格布局(又称“网格”),是一种二维网格布局系统。CSS在处理网页布局方面一直做的不是很好。一开始我们用...

  • CSS布局

    1、CSS Grid 网格布局教程 2、Flex 布局教程:语法篇(骰子布局,网格布局,百分百布局,圣杯布局......

  • Grid布局(一)介绍

    一、前言 Grid布局,又叫网格布局,是最强大的CSS布局方案;Grid将网页分成了一个个的网格,通过CSS样式,...

  • 两步构建 CSS Grid

    3月7号,谷歌、火狐统一更新了浏览器,加入 CSS Grid 网格布局。为什么新的 CSS Grid 网格布局值得...

网友评论

      本文标题:Css 的网格布局

      本文链接:https://www.haomeiwen.com/subject/idlbndtx.html