Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >CSS + HTML <网格布局 grid>

CSS + HTML <网格布局 grid>

作者头像
网罗开发
发布于 2021-04-26 03:21:44
发布于 2021-04-26 03:21:44
2.3K00
代码可运行
举报
文章被收录于专栏:网罗开发网罗开发
运行总次数:0
代码可运行

介绍


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

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

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

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

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

代码如下


代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
最强大的 CSS 布局 —— Grid 布局
Grid 布局即网格布局,是一种新的 CSS 布局模型,比较擅长将一个页面划分为几个主要区域,以及定义这些区域的大小、位置、层次等关系。号称是最强大的的 CSS 布局方案,是目前唯一一种 CSS 二维布局。利用 Grid 布局,我们可以轻松实现类似下图布局,演示地址[1]
GopalFeng
2020/09/24
7.3K0
最强大的 CSS 布局 —— Grid 布局
不会 CSS 网格布局,你的网页可能会落伍!
友儿
2024/08/20
730
IT课程 CSS基础 031_网格布局 Grid
网格是由一系列水平及垂直的线构成的一种布局模式。根据网格,我们能够将设计元素进行排列,帮助我们设计一系列具有固定位置以及宽度的元素的页面,使我们的网站页面更加统一。
zhaoJian.Net
2024/04/03
1120
IT课程 CSS基础 031_网格布局 Grid
Grid网格布局入门
它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局。以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了。
javascript.shop
2019/09/04
2.1K1
Grid网格布局入门
grid网格布局
​ 距今来看已经十多年了,确确实实占据了前端布局中很大的地位,相比大家对flex都很熟悉,所以今天我们的主角就是-------> Grid
Snine
2022/02/11
1.9K0
grid网格布局
【CSS】最强大的布局之grid布局精讲
轮播图swiper框架的基本使用 【Transform3D】转换详解(看完就会) 【css动画】移动的小车
坚毅的小解同志的前端社区
2022/11/28
2.9K0
【CSS】最强大的布局之grid布局精讲
【CSS】343- CSS Grid 网格布局入门
CSS Grid(网格) 布局使我们能够比以往任何时候都可以更灵活构建和控制自定义网格。Grid(网格) 布局使我们能够将网页分成具有简单属性的行和列。
pingan8787
2019/09/09
1.9K0
【CSS】343- CSS Grid 网格布局入门
CSS Flexbox与Grid:构建响应式布局的艺术
开启Flex布局模式。将一个元素设置为Flex容器,其直接子元素将成为Flex项目。
天涯学馆
2024/05/22
1460
CSS Flexbox与Grid:构建响应式布局的艺术
[译]二维布局:Grid Layout
CSS Grid Layout 是 CSS 中最强大的布局系统。不像 flexbox 那样的一维系统,它是一个二维系统,可以同时处理列和行。您可以通过将规则应用到父元素来使用 Grid Layout。
码农小余
2022/06/16
4.3K0
[译]二维布局:Grid Layout
Grid layout + 媒体查询轻易实现常用的响应式布局
最近在整理前端知识体系,怎么可以少了布局这一环呢?先问大家一个问题,如果让css只保留一种布局,留下来解决前端布局问题?你会选择那个布局呢?如果问我,我会选择 网格布局,根据二八原则,网格布局基本上可以帮助我解决 80% 的布局场景,颇有一套布局打遍天下布局的气势,因此非常值得一探究竟。
老码小张
2023/11/28
7100
Grid layout + 媒体查询轻易实现常用的响应式布局
分享一些关于 CSS Grid 基础入门知识
在本文中,我们将通过一些实际示例来学习CSS网格,以帮助你更好地理解。让我们开始吧。
前端达人
2023/08/31
2100
分享一些关于 CSS Grid 基础入门知识
【Web前端】“CSS 网格”二维布局系统(补充)
CSS 网格布局是一种二维布局系统,用于网页设计。通过使用网格,你可以将内容以行和列的形式进行排列。此外,网格布局还能够简便地实现一些复杂的布局结构。
一条晒干的咸鱼
2024/11/19
830
【Web前端】“CSS 网格”二维布局系统(补充)
【图片版】CSS网格布局(Grid)完全教程
CSS网格布局(Grid)是一套二维的页面布局系统,它的出现将完全颠覆页面布局的传统方式。传统的CSS页面布局 一直不够理想。包括table布局、浮动、定位及内联块等方式,从本质上都是Hack的方式,并且遗漏了一些重要的功能(比如:垂直居中)。Flexbox的出现部分解决了上述问题,但Flex布局是为了解决简单的一维布局,适用于页面局部布局。而Grid天然就是为了解决复杂的二维布局而出现的,适用页面的整体布局。在实际工作中,Grid和Flexbox不但不矛盾,而且还能很好的结合使用。做为WEB程序员,我们在页面布局问题上都付出过努力,也将不断探索新的方案。而Grid是第一个专门为布局问题而生的CSS模块,我们有理由对Grid充满期待。
毛瑞
2018/05/02
5K0
【图片版】CSS网格布局(Grid)完全教程
Grid布局 容器属性(一) `grid-template`系列属性
如果学会语法了,想要类似刷题增加一点印象的话,可以去GRID GARDEN玩一下游戏,不过比较简单。
赤蓝紫
2023/03/16
1.8K0
Grid布局 容器属性(一) `grid-template`系列属性
Grid布局简介
没错,这其实就是我们小时候写的小格子本本,其实它跟我们今天要讲的主题Grid布局非常类似,其实Grid布局就是它的升级加强版。
桃翁
2018/08/16
7.4K2
Grid布局简介
Grid布局详解:打造完美的网页布局
随着Web技术的不断发展,网页布局也在不断地改进和完善,其中Grid布局是最受欢迎的一种布局方式。它是一种基于网格线的布局方式,可以轻松地实现复杂的网页布局,而且还具有很强的可读性和可维护性。
Front_Yue
2023/12/22
1.4K0
Grid布局详解:打造完美的网页布局
CSS(七)
Grid 布局是 CSS 中最强大的布局系统。 Grid 布局是一个二维布局系统,意味着它可以处理列和行,不像 Flexbox 主要是一维布局系统。通过将 CSS 规则应用于父元素(称为 grid container)和子元素(称为 grid items),我们就可以使用网格布局。
1ess
2021/10/29
4870
CSS(七)
CSS 中的 Grid 布局 完全指南
Grid 是一个基于二维网格布局的系统,有了它我们可以非常方便的实现过去很复杂布局,无需再使用float, inline-block, position 这些本质上是 hack 的方法。
羽月
2022/10/08
3.9K0
CSS 中的 Grid 布局 完全指南
CSS3中Grid布局
Grid 布局与Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。
码客说
2023/08/17
5590
CSS3中Grid布局
一次性把所有普通和经典的网页布局讲得通通透透的,多图预警,建议收藏
超干货长文预警。这次把网页布局方案讲得通通透透的,等高布局,水平垂直居中,经典的圣杯布局等等全都有了。建议收藏
夜尽天明
2020/09/17
5.8K0
一次性把所有普通和经典的网页布局讲得通通透透的,多图预警,建议收藏
相关推荐
最强大的 CSS 布局 —— Grid 布局
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验