CSS网格

2022-11-22  本文已影响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 属性

2.定义显式网格

  1. none 默认值。在需要时创建列。
  2. auto 列的尺寸取决于容器的大小以及列中项目内容的大小。
  3. max-content 根据列中最大的项目设置每列的尺寸。
  4. min-content 根据列中最小的项目设置每列的尺寸。
  5. length 设置列的尺寸,通过使用合法的长度值。参阅长度单位
.box{
                grid-template-areas:
                "header header header"
                "main main main"
                "footer footer footer";

}

3.定义隐式网格

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

.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)定义网格沿行轴/列轴的对齐方式(子元素应用)

  .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.网格间距

.container{
 /* *********************网格间距************************** */
           column-gap: 10px  /*每一列之间相隔10px */
          row-gap: 10px;  /* 每一行之间相隔10px */
             gap: 10px; /*每一列和一行之间相隔10px */
}

6.设置跨行跨列

.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.创建网格模板区域的步骤

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

上一篇下一篇

猜你喜欢

热点阅读