Grid网格布局

grid网格布局

兼容性:ie10及以上浏览器支持;

容器常用属性设置
display:grid | inline-grid; 设置元素为网格容器,或是行内网格容器
grid-template-columns:[c1] 200px [c2] 200px [c3];设置网格的列数及宽度,常用设置有repeat(2,200px),宽度可以使用百分比,fr1,auto-fill,auto,minmax(100px, 1fr),px定义;c1-c3为网格线名称,通过网格线名称可以随意移动网格位置
grid-template-rows:200px 200px; 设置网格的行数几行高;常用设置同上
grid-auto-flow:row(默认) | row-dense | column | column-dese;网格的排列顺序
grid-template-areas:'a b c' 'd e f';网格区域,可以使用.占位符描述不需要区域,区域的网格线表示为a-start,a-end;
grid-gap:10px 10px;grid-column-gap和grid-row-gap的简写,设置网格间隙
justify-content:center | start | end | space-between | space-around |space-evenly | stretch(默认); 网格相对于容器水平居中
align-content:网格相对于容器垂直居中
place-content:center; 网格布局的简写
justify-items:center | start | end | stretch(默认); 网格相对于容器水平居中
align-items:网格相对于容器垂直居中
place-items:center; 网格布局的简写

设置网格的排列及顺序
gride-area:name || row-start / column-start / row-end / column-end ;制定网格放在哪一个网格区域;位置固定不变,如果其他单一个也设置在这个区域,会被覆盖;
grid-column-start:2;设定网格开始的网格线位置,还可以使用网格线的名称,还可以使用span 2,表示跨越两个单元格
grid-column-end:4;设定网格结束的网格线位置
grid-row-start:2;设定网格开始的网格线位置
grid-row-end:4;设定网格结束的网格线位置

以上可以使用简写属性:grid-column:start / end;grid-row:start / end;也可以写成grid-row:1 / span 2;表示占据两个单元格

网格项常用属性设置

grid-column-start name/number/auto 行开始网格线
grid-column-end name/number/auto 行结束网格线
grid-row-start name/number/auto 列开始网格线
grid-row-end name/number/auto 列开始网格线
grid-area name 命名模板名称
justify-self:start | end | center | stretch 左对齐、右对齐、左右居中、填充
align-self:start | end | center | stretch 上对齐、下对齐、上下居中、填充

其实跟flex布局属性设置类似,个人感觉他的item项属性不好用

下面是常用设置代码,一起学习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>grid网格布局</title>
    <style>
    h3,
    p{
        width: 90%;
        margin:20px auto;
    }
    .box{
        display:grid;
        grid-template-columns: repeat(3,20%);  /*控制列数,列宽度可以单个列出,也可以使用repeat()函数,宽度可以是百分比,也可以是fr,auto等*/
        /* grid-template-columns: 200px 200px 200px; */
        /* grid-template-columns: repeat(3,fr1);  */
        /* grid-template-columns:200px auto 200px; */
        grid-template-rows: repeat(2,100px);
        justify-content: center;   /*水平居中 */
        align-content:center;      /*垂直居中 */
        /* place-content: center;  水平,垂直简写*/
        grid-gap:15px;            /*item之间间隙,grid-gap:grid-column-gap grid-row-gap*/
        grid-template-areas: 'header header header' 'main main main ';
        width:1000px;
        height:500px;
        background: #ddd;
        margin:30px auto;
    }
    .flow{
        grid-template-columns: repeat(2,20%);
        grid-template-rows: repeat(3,100px);
        grid-auto-flow:column;    /*改变排列顺序,默认row,常用设置:row | column | row-dense | column-dense */
    }
    .box div{
        background: orange;
        text-align: center;
    }
    .wrap{
        display: grid;
        grid-template-columns: repeat(3,200px);
        grid-template-rows: repeat(3,200px);
        grid-template-areas: 'a b c'
                             'd e f'
                             'h i j';
        width:600px;
        height:600px;
        margin:20px auto;
    }
    .wrap div{
        text-align: center;
        line-height: 200px;
        font-size:30px;
        font-weight: bold;
    }
    .wrap div:nth-child(1){
        background: cornflowerblue;
        grid-area:e;
    }
    .wrap div:nth-child(2){
        background: rgb(245, 214, 39);
        grid-column: 1 / 3;
        /* grid-row:1 / 3; 如果这样设置的话,会覆盖第一项,因为第一项的位置是固定不变的 */
    }
    .wrap div:nth-child(3){
        background: rgb(20, 206, 66);
    }
    .wrap div:nth-child(4){
        background: rgb(236, 15, 144);
    }
    .wrap div:nth-child(5){
        background: rgb(240, 62, 8);
    }
    .wrap div:nth-child(6){
        background: rgb(6, 71, 190);
    }
    .wrap div:nth-child(7){
        background: rgb(252, 99, 201);
    }
    .wrap div:nth-child(8){
        background: rgb(196, 237, 100);
    }
    .wrap div:nth-child(9){
        background: rgb(231, 170, 129);
        grid-area: 4 /1 /4 /4;
        
    }

    </style>
</head>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
    </div>

    <div class="box flow">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
    </div>

    <div class="wrap">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <div>4</div>
        <div>5</div>
        <div>6</div>
        <div>7</div>
        <div>8</div>
        <div>9</div>
    </div>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • 网格线(Grid Line) 构成网格结构的分界线。它们既可以是垂直的(“列网格线(column grid lin...
    晚溪呀阅读 1,173评论 0 0
  • 本文仍旧转载于阮一峰老师 一、概述 网格布局(Grid)是最强大的 CSS 布局方案。 它将网页划分成一个个网格,...
    blossom_绽放阅读 504评论 0 0
  • Grid 布局和 Flex 布局 Grid 布局和 Flex 布局有点相似,两者都是指定容器内部项目的位置,而且不...
    漫若浮光z阅读 989评论 0 0
  • Grid网格布局学习 引言 本文不对grid布局由来以及优劣做过多的介绍,仅介绍grid网格布局的用法及其效果显示...
    锤子爱砸房子阅读 662评论 0 1
  • 大一时陈奕迅的十年很红,台上的男生唱得很投入,很好听。那时候还不知道十年意味着什么,十年之后又是什么样子,想也没想...
    墨青枫阅读 175评论 0 0