前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSS + HTML <网格布局 grid>

CSS + HTML <网格布局 grid>

作者头像
网罗开发
发布2021-04-26 11:21:44
2.2K0
发布2021-04-26 11:21:44
举报
文章被收录于专栏:网罗开发网罗开发

介绍


你可能会问网格布局可以干什么,我这里简单的了解了一下。

发现类似计算器,键盘的排版都是可以用网格布局的,而且在项目开发中的一些商品布局或者文章布局等,也是可以用的。

但是也要看你的熟练度了,我之前多用的是弹性布局 display:flex,了解过网格布局 display:grid 后,发现有些东西用起来还是用后者要方便很多,但是具体也没用过,不敢说有没有一些坑位~~

但是多多益善,知道的多,日后必能派上用场,这里为大家提供一些相关学习网格布局的网站,也可以直接通过我这边代码的注释,直接去理解。

获取源码方式:点击左上方「网罗开发」关注并回复 “210410” 即可获取。

代码如下


代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            box-sizing: border-box;
        }

        body {
            min-height: 100vh;
            display: grid;
            /* 1ch 等于一个 0 的宽度 */
            /* 1ch = 1个英文 = 1个数字 */
            /* 2ch = 1个中文 */
            /* auto-fill;
            如果容器大小不固定,项目大小固定,可以用auto-fill关键字自动填充;*/
            /* 列 自动填充列,每列为30个字符宽度 */
            grid-template-columns: repeat(auto-fit, 30ch);
            place-content: center;
            /* 每个网格的间距为 5vh */
            grid-gap: 5vh;
            margin-left: auto;
            margin-right: auto;
            padding: 1rem;
        }

        #template {
            background: #fff;
            padding: 1rem;
            border-radius: 7px;
            box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.13);
            /* height: 25vh; */
            /* 网格布局 */
            display: grid;
            /* grid-gap:20px 20px; */
            /* row-gap和column-gap简写形式;行间距和列间距 */
            grid-gap: 0.5rem;
        }

        .col {
            background-color: #7B86F5;
            border-radius: 4px;
            display: grid;
            place-items: center;
            color: #fff;
            font-size: 1.5rem;
        }

        .template-2col {
            /* 重复写值很麻烦,可以用repeate函数;
         repeat(次数,大小);
         例如:repeat(3,100px); //重复3次,每次100px;
            */
            /* 2列,每列为1等分 */
            grid-template-columns: repeat(2, 1fr);
        }

        .template-3col {
            /* 3列,每列为1等分 */
            grid-template-columns: repeat(3, 1fr);
        }

        .template-4col {
            /* 2行 每行1等分/2列 每列1等分 */
            grid-template: repeat(2, 1fr)/repeat(2, 1fr);
        }

        .template-5col {
            /* 区域划分 2行2列 */
            grid-template: "sidebar mainA""sidebar mainB";
            /* 1列最小为100px最大为1等分  2列为1等分*/
            grid-template-columns: minmax(100px, 1fr) 1fr;
        }

        .template-5col .left {
            overflow: hidden;
            /* 区域划分 left占 sidebar 位*/
            grid-area: sidebar;
        }

        .template-5col .left img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .template-6col {
            grid-template: "mainA sidebar""mainB sidebar";
        }

        .template-6col .right {
            grid-area: sidebar;
        }

        .template-7col {
            /* 3行 每行1等分/3列 每列1等分 */
            grid-template: repeat(3, 1fr)/repeat(3, 1fr);
        }

        .template-8col {
            /* 3行 每行1等分/3列 每列1等分 */
            grid-template: repeat(3, 1fr)/repeat(3, 1fr);
            /* 网格排列方式 默认row:水平排列  column:垂直排列  */
            grid-auto-flow: column;
        }

        .template-9col {
            grid-template: repeat(3, 1fr)/repeat(3, 1fr);
        }

        .template-9col .col:nth-child(1) {
            /* 从第1行和第1列开始,跨越1行3列 */
            grid-area: 1/1/span 1/span 3;
        }
        .template-9col .col:nth-child(3) {
            /* 从第2行和第2列开始,跨越2行2列 */
            grid-area: 2/2/span 2/span 2;
        }
        .template-9col .col:nth-child(5) {
            /* 从第1行和第1列开始,跨越1行3列 */
            grid-area: 4/1/span 2/span 1;
        }
</style>
</head>

<body>
    <div id="template" class="template-1col">
        <div class="col">1</div>
        <div class="col">2</div>
    </div>
    <div id="template" class="template-2col">
        <div class="col">1</div>
        <div class="col">2</div>
    </div>
    <div id="template" class="template-3col">
        <div class="col">1</div>
        <div class="col">2</div>
        <div class="col">3</div>
    </div>
    <div id="template" class="template-4col">
        <div class="col">1</div>
        <div class="col">2</div>
        <div class="col">3</div>
        <div class="col">4</div>
    </div>
    <div id="template" class="template-5col">
        <div class="col left">
            1
            <!-- <img src="./pexels-pixabay-355747.png" alt=""> -->
        </div>
        <div class="col">2</div>
        <div class="col">3</div>
    </div>
    <div id="template" class="template-6col">
        <div class="col right">1</div>
        <div class="col">2</div>
        <div class="col">3</div>
    </div>
    <div id="template" class="template-7col">
        <div class="col">1</div>
        <div class="col">2</div>
        <div class="col">3</div>
        <div class="col">4</div>
        <div class="col">5</div>
        <div class="col">6</div>
        <div class="col">7</div>
        <div class="col">8</div>
        <div class="col">9</div>
    </div>
    <div id="template" class="template-8col">
        <div class="col">1</div>
        <div class="col">2</div>
        <div class="col">3</div>
        <div class="col">4</div>
        <div class="col">5</div>
        <div class="col">6</div>
        <div class="col">7</div>
        <div class="col">8</div>
        <div class="col">9</div>
    </div>
    <div id="template" class="template-9col">
        <div class="col">1</div>
        <div class="col">2</div>
        <div class="col">3</div>
        <div class="col">4</div>
        <div class="col">5</div>
        <div class="col">6</div>
        <div class="col">7</div>
        <div class="col">8</div>
        <div class="col">9</div>
    </div>
</body>

</html>

如果觉得不错,素质三连、或者点个「赞」「在看」都是对笔者莫大的支持,谢谢各位大佬啦~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网罗开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档