Grid box(网格式布局)

1.基础设置:

			display: grid;	
			/* grid可以嵌套使用 */
            grid-auto-rows: minmax(100px,auto);/* minmax(最小高度 最大高度) 可以设置为auto*/
            /* grid-auto-rows: 300px;行高 */
            grid-template-columns: 1fr 1fr;/*设置列宽*/
            /* grid-template-colums:repeat(2,1fr);  repeat(列数 宽度)*/
            grid-column-gap: 1rem;/*列间距*/ 
            grid-row-gap: 1rem;/*行间距*/
            grid-gap: 1rem;/* grid-gap是行间距和列间距的缩写 编写规则为:先行后列*/            
            justify-items: start;/* 水平对齐方式 */
            /* stretch(默认值) 完全拉伸 */
            /* start 以行轴线的起始位置对齐 */
            /* end 以行轴线的末位置对齐 */
            /* center 以行轴线的中心区域对齐  */
            align-items: center;/* 垂直对齐方式 */
            /* center 以列轴线的中心区域对齐 */
            /* stretch(默认值) 完全拉伸 */
            /* start 以列轴线的起始位置对齐 */
            /* end 以列轴线的末位置对齐 */
            对于单独的网格设计对齐方式要用到 justify-self和align-self 
            /* 网格的跨列 */
            grid-column:1/3; /* 跨越起始1到终止3列网格线 */
            /* 网格的跨行 */
            grid-row:1/3;  /*跨越起始网格线1-终止3行网格线*/

2.自定义网格布局:

例子:搭建一个3*3的网格
html部分

<div class="main">
        <div class="header">
           <h1>Hello NS</h1>
        </div>
        <div class="age">100</div>
        <div class="phone">12313215</div>
        <div class="box box-1">box-1</div>
        <div class="box box-2">box-2</div>
        <div class="box box-3">box-3</div>
    </div>
  .main{
    
    
            display: grid;
            grid-template-areas: 
            'a a a'
            'b b c'
            'd e f';
            grid-gap: 1rem;
        }
        .header{
    
    
            grid-area: a;
        }
        .age{
    
    
            grid-area: b;
        }
        .phone{
    
    
            grid-area: c;
        }
        .box-1{
    
    
            grid-area: d;
        }
        .box-2{
    
    
            grid-area: e;
        }
        .box-3{
    
    
            grid-area: f;
        }
        .header,
        .age,
        .box-1,
        .box-2,
        .box-3,
        .phone{
    
    
            text-align: center;
            border: 1px #cccccc solid;
        }

效果如下:
在这里插入图片描述

3.网格的嵌套:

html部分:

<div class="main">
        <div class="header"><h1>Hello NS</h1></div>
        <div class="age">100</div>
        <div class="phone">12313215</div>
        <div class="box box-1">
            <div class="xx">xx</div>
            <div class="xx">xx</div>
            <div class="xx">xx</div>
        </div>
        <div class="box box-2">box-2</div>
        <div class="box box-3">box-3</div>
 </div>

css部分·:

 .main{
    
    
            display: grid;
            grid-template-columns: repeat(3,3fr);
            grid-auto-rows: minmax(100px,auto);
            grid-gap: 1rem;
        }
        .main>div{
    
    
            background-color: #cccccc;
        }
        .main>div:nth-child(2n){
    
    
            background-color: cadetblue;
        }
        .box-1{
    
    
            display: grid;/*对box-1所在的网格在进行嵌套*/
            grid-template-columns: repeat(3,1fr);
            text-align: center;
        }

4.响应式布局拓展:

//对于网格布局来说,可以通媒体查询完成一定的响应式布局
 @media(max-width: 600px){
    
    
            .main{
    
    
                display: grid;
                grid-template-areas: 
            'a '
            'b' 
            'c'
            'd'
            'e'
            'f'; 
            }
//这个就是当最大宽度小于600px时,单元格变为6行1列

猜你喜欢

转载自blog.csdn.net/weixin_52387684/article/details/112596103
今日推荐