CSS网格

作者: 败于化纤 | 来源:发表于2022-11-22 08:20 被阅读0次

单词
grid :网格 / 栅格 (古瑞的)
row:行
column :列 (阔了目)
template : 模板 (探不累)
justify:调整
content:内容
item : 项目
container:容器
self :自已
fracion :片段
area:地区,区域(唉儿瑞而)
10areas:十个区域
1area:一个区域

grid 布局系统术语

Grid container 网格内容
Grid item 网格项目
Grid line 网格容器
行轴:Grid row
列轴:Grid column

1.定义网格容器display: grid

被设置display: grid属性的元素将会变成网格容器。
Display 属性

  • 当 HTML 元素的 display 属性设置为 grid 或 inline-grid 时,它就会成为网格容器。

2.定义显式网格

  • grid-template-columns:定义显式网格列(列数和列宽)
  • grid-template-rows:定义显式网格行(行数和行高)
  • **grid-template: **grid-template-columns 和grid-template-rows的简写属性,定义显式网格(网格列,网格行,网格区域)。
    属性值:
    1. fr 单位, grid-template-columns: repeat(3,2fr);/*设置三列,没一列都占比1份
  1. none 默认值。在需要时创建列。
  2. auto 列的尺寸取决于容器的大小以及列中项目内容的大小。
  3. max-content 根据列中最大的项目设置每列的尺寸。
  4. min-content 根据列中最小的项目设置每列的尺寸。
  5. length 设置列的尺寸,通过使用合法的长度值。参阅长度单位
  • grid-template-areas:定义显式网格区域
    示例:
.box{
                grid-template-areas:
                "header header header"
                "main main main"
                "footer footer footer";

}

3.定义隐式网格

  • grid-auto-rows:定义隐式网格的行高
  • ** grid-auto-columns:** 定义隐式网格的列宽

4.(1)定义网格沿行轴/列轴的对齐方式(父元素应用)

  • justify-content:定义网格沿行轴的对齐方式
  • align-content:定义网格沿列轴的对齐方式
  • justify-items:定义网格单元沿行轴的对齐方式
  • align-items:定义网格单元沿列轴的对齐方式
    示例1:
    justify-content
.container{
  /* ***************关于对齐项目(2)************************************** */
           justify-content: end; /* 沿着水平轴对齐到水平终点. */
           justify-content: start; /* 沿着水平轴对齐到水平起点 */
           justify-content: space-around;
            justify-content: space-between;
            justify-content: space-evenly;
            justify-content: center;/* 沿着水平轴对齐到水平居中 */
}

示例2:
align-items:

    .container{
  /* ***************关于对齐项目(1)*************************** */
          align-items: flex-end;  /* 对齐到当前行内内沿垂直轴终点 */
           align-items: flex-start;  /* 对齐到当前行内沿垂直轴的起点 */
            align-items: stretch;  /* 默认 */
           align-items: center;  /* 沿当前行内居中 */
}

4.(2)定义网格沿行轴/列轴的对齐方式(子元素应用)

  • align-self:覆盖 align-items的值

  • justify-self:覆盖 justify-items值
    属性值:

    • stretch:它是此属性的默认值,它使内容填充到单元格的整个宽度。
    • normal:这是微不足道的属性,即在块级布局和替换的absolutely-positioned框中充当开始,在其他绝对定位的框,表和flex布局中处于拉伸状态,在网格布局中被视为拉伸,除非在少数情况下,例如框以高宽比作为起始值。
  • auto:它是位于父元素中的justify-items属性使用的值,或默认为正常值。它是默认值。

  • baseline:它使当前框的第一个或最后一个基线集的对齐基线与baseline-sharing组中所有框的共享的第一个或最后一个基线集中的对应基线对齐。第一个基准的fall-back值是开始,最后一个基准的fall-back值是结束。

  • start:它允许内容自行对齐到单元格的左侧。

  • end:它使内容可以在单元格的右侧对齐。

  • center:它允许内容使其自身与单元格的中心对齐。

  • flex-start:与起始值相同。

  • flex-end:与最终值相同。

  • self-start:它将项目在项目的开头对齐到对齐容器的左侧。

  • self-end:它将项目在项目末尾对齐到对齐容器的右侧。

  • left:它使物品包与对齐容器的左侧齐平。如果属性的轴与内联轴不平行,则它与start相同。

  • right:它使项目包装与对齐容器的右侧齐平。如果属性的轴与内联轴不平行,则其作用与末端相同。

  • safe:如果项目溢出对齐容器,则使该项目对齐为起始值。

  • unsafe:不管相对大小对齐容器和项目如何,它都会使项目按给定值对齐。
    示例1:
    align-self:

  .container{
  /* **********垂直对齐子元素*************** */
           align-self: center; /* 对齐到侧轴的居中位置 */
           align-self: flex-end; /* 对齐到侧轴的终点位置 */
     align-self: flex-start;/*对齐到侧轴的起点位置*/
}

示例2:
justify-self:

  .container{
/* **********水平对齐子元素*************** */
            justify-self: center;/*  */
            justify-content: flex-end; /* */
            justify-content: flex-start;/*  */
}

5.网格间距

  • 可以通过使用以下属性之一来调整间隙大小:
    column-gap:属性设置列间距:
    row-gap :属性设置行间距:
    gap:属性是 row-gap 和 column-gap 属性的简写属性
    示例:
.container{
 /* *********************网格间距************************** */
           column-gap: 10px  /*每一列之间相隔10px */
          row-gap: 10px;  /* 每一行之间相隔10px */
             gap: 10px; /*每一列和一行之间相隔10px */
}

6.设置跨行跨列

  • grid-column-start:设置起始列线
  • grid-column-end:设置结束列线
  • grid-column 属性:是 grid-column-start 和 grid-column-end 属性的简写属性。
  • grid-row-start:设置起始行线
  • grid-row-end:设置结束行线
  • grid-row: grid-row-start和 grid-row-start的复合属性
  • grid-area 属性:可以用作 grid-row-start、grid-column-start、grid-row-end 和 grid-column-end 属性的简写属性。
    示例1:
.container  .item1{
        /* ****************跨行************************** */
          grid-column-start: 1;  /* 启始线 */
            grid-column-end: 3; /*结束线 */
            /* grid-column 属性是 grid-column-start 和 grid-column-end 属性的简写属性。 */
         grid-column: 1 / span 2 ;    /*跨列复合属性: 从跨线1开始到跨线3结束 */
        }

示例2:

 .container .box1{
   /* ****************跨列*************************** */
               grid-row-start: 1 ;/*起始位置 */
              grid-row-start: 3;/*结束位置 */
             grid-row: 1 / 2; /* grid-row-start和 grid-row-start的复合属性*/
              /* grid-area 属性可以用作 grid-row-start、grid-column-start、grid-row-end 和 grid-column-end 属性的简写属性。 */
  grid-area: 1 / 2 / 5 / 6;
}

7.网格响应式

minmax(200px,1fr)) :每一行可以大于等于200px ,但不能小于.1fr

  @media screen and (max-width:800px){
            .container{
                /* grid-template-columns: 1fr; */
                 /* **********网格响应式,视口宽度小于500网格布局换为2行显示***************** */
                grid-template-columns: repeat(auto-fill,minmax(200px,1fr));
                /* repeat(auto-fill :自适应
                ,minmax(200px,1fr))  :每一行可以大于等于200px ,但不能小于.1fr*/
            }

定义网格模板列:列数和列宽

grid-template-columns: 属性定义网格布局中的列数,并可定义每列的宽度。

  /* ***************************定义网格模板列:列数和列宽********************* */
            /* grid-template-columns: 100px 200px 300px;  */
            /* grid-template-columns: 20% 40% 20%; */
            /* grid-template-columns: 1fr 1fr 1fr 1fr; */
            grid-template-columns: repeat(3,1fr);/*设置三列,没一列都占比1份*/
            /* grid-template-columns: repeat(3,300px); */

8.创建网格模板区域的步骤

第一步:创建网格系统
第二步:创建模板(确定父元素和子元素)
第三步: 创建名称
第四步:指定列数列宽 行数行宽

相关文章

  • 编写你的专属CSS框架-Grid System

    对于任何CSS框架而言网格系统都是最基础的部分。 CSS网格包含的要素 Creating Your Own CSS...

  • CSS绘制网格背景

    CSS绘制网格背景 CSS 代码 预览图

  • 布局

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

  • 使用纯CSS构建砌体画廊布局

    建立一个像Pinterest这样的CSS网格 今天,我将向您展示如何使用CSS Grid构建复杂的砖石网格。CSS...

  • CSS Grid 网格布局

    CSS Grid 网格布局教程

  • 傻瓜式 前端代码 生成器

    CSS 居中对齐 http://howtocenterincss.com/ CSS 网格 https://cssg...

  • CSS Grid网格布局

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

  • 九宫格拖拽

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

  • 九宫格拖拽

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

  • Grid布局指南

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

网友评论

      本文标题:CSS网格

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