CSS Grid 栅格布局

图解 CSS Grid 布局 在解释 CSS Grid 布局之前,我们先来看看 Grid 布局中一些重要概念。 阅读详情

简介

栅格布局能将网页分成简单属性的行和列;
Grid(网格) 模块为 display 属性提供了一个新的值:grid。当你将任何元素的 display 属性设置为 grid 时,那么这个元素就是一个 网格容器(grid container),它的所有直接子元素就成了 网格项(grid items)。


举个栗子:
制作一个九宫格的布局展示:
这里写图片描述

第一步:HTML

 <div class="box">
        <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>

第二步:介绍grid的使用
.box 是网格栏,.box>div是网格项

.box
    {
        display: grid;
        grid-template-rows: 200px 200px 200px;   
        grid-template-columns: 200px 200px 200px;
    }

grid-template-rows 定义网格中行数和行的高度;
grid-template-columns 定义网格中的列数和列的高度。

fr 单位(等分)

fr 是为网格布局定义的一个新单位。它可以帮助我们摆脱计算百分比,并将可用空间等分。

如果在网格容器中设置这个规则:grid-template-rows: 2fr 3fr,那么你的网格容器将首先被分成 2 行。然后将数字部分加在一起,这里总和为 5, 即 5 等分。
也就是说,我们将有 2 行:第一排占据垂直空间的 2/5 。 第二排占垂直空间的 3/5 。

所以,我们可以用 fr 单位代替 px

.box 
    {
        display: grid;
        grid-template-rows: 1fr 1fr 1fr;
        grid-template-columns: 1fr 1fr 1fr;
    }

为了书写的便利,官方提供 repeat () 函数,第一个是迭代次数,第二个是要重复的值。

//这种写法跟上面的同效
.box
    {
        display: grid;
        grid-template-rows: repeat(3, 1fr);
        grid-template-columns: repeat(3, 1fr);
    }

grid-template 属性

grid-template 属性是 grid-template-rows 和 grid-template-columns 的简写语法。
//刚刚的九宫格,只需要2行代码就可以实现

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

如下展示全部的CSS:

 .box{
       display: grid;
       background-color: #f1f1f1;
       grid-template: repeat(3,1fr) / repeat(3,1fr);
       width: 300px;
       height: 300px;
       margin: auto;
 }
 .box>div{
       text-align: center;
       background-color: #444;
       line-height: 100px;
       font-size: 25px;
 }
 .box>div:nth-of-type(odd){
      background-color: aliceblue;
 }

如果我们想要改变元素的位置,在不更改HTML的前提下,通过 grid 的属性来实现:
如下图:
这里写图片描述

 .box>div:nth-child(6){
         grid-row: 1/2;   //水平网格线
         grid-column: 2/3;    //列网格线的开始和结束
         background-color: red;
     }
或者这样的简写方式也可以:  grid-area: 1 / 2 / 2 / 3;

如果我们想要第六个网格跨越两个网格的宽度,如下图,我们可以这样写:
这里写图片描述

.box>div:nth-child(6){
            grid-area: 1/2/2/4;
            background-color: red;
      }

接下来实现一个网格区域的HTML布局展示,如下:

网格区域命名

grid-area 属性也可以用来命名网格的某一个部分,然后我们可以用 grid-template-areas 属性来定位。
创建一个简单的Html:

<div class="container">
        <header></header>
        <nav></nav>
        <main></main>
        <aside></aside>
        <footer></footer>
</div>

需要使用 grid-area 属性来命名每个区域,然后使用 grid-template-areas 属性来指定每个网格区域所占据的行和列,

 .container{
        display: grid;
        grid-template-rows: 1fr 5fr 1fr;
        grid-template-columns: 2fr 5fr 3fr;
        grid-template-areas:
            "header  header  header"
            "nav     main    aside"
            "footer  footer  footer"; 
                //z注意:header 和 footer 单词重复三次。 这表明,header 和 footer 横跨 3 列的宽度
        grid-gap: .75em;
        background-color: #eee;
        width: 100vw;
        height: 100vh;
    }
      header{
        grid-area: header;
        background-color: #9b59b6;
    }

    nav{
        grid-area: nav;
        background-color: #3498db;
    }

    main{
        grid-area: main;
        background-color: #2ecc71;
    }

    aside{
        grid-area: aside;
        background-color: #f1c40f;
    }

    footer{
        grid-area: footer;
        background-color: #1abc9c;
    }

这里写图片描述

DW1000芯片实战:如何用UWB技术打造10厘米精度的室内定位系统(附Arduino代码) 本文是一份基于DW1000芯片和UWB技术的实战指南,详细介绍了如何从零构建一个精度可达10厘米的室内定位系统。内容涵盖硬件选型与连接、软件环境配置、核心的双向测距算法实现,并深入探讨了信号干扰抑制、功耗优化等实战挑战,为物联网开发者提供了完整的Arduino代码和部署思路。 阅读详情

相关推荐

PCRNet: Point Cloud Registration Network using PointNet Encoding

PCRNet算是在ModelNet40这种object-centric数据集上用deep-learning做配准最好入手的一篇文章了,整体架构涉及简洁明了,一句话描述就是简单粗暴,话不多说,直接上网络架构图: Work Flow: 首先对输入source (N×3N \times 3N×3)与template (M×3M \times 3M×3)进行PointNet操作,即MLP + max-pooling后,分别得到描述各自点云的维度为1024的global feature vector:Φ(PS).

dloading7的博客 1648

Css3新布局---Grid网格

网格布局是css3中新增加的一种布局方式,比flex更加强大。flex属于一维布局,对于高度不能灵活控制。grid网格布局是二维布局,通过行和列来分配网页空间。通过下面这个小游戏可以简单体会到网格布局的强大。...

m0_66711291的博客 2872

iTunes登录协议抓包实战:绕过反检测与TLS解密的完整方案

在软件逆向与网络协议分析中,抓包工具扮演着关键角色。代理型工具如Fiddler通过修改系统代理实现HTTPS解密,而驱动型工具如HTTPDebugger则注入进程钩取网络API,但这些实现机制往往会被具有反检测策略的客户端识别。以iTunes登录协议为例,其内置证书锁定、进程完整性与系统代理检测等防护,导致常规抓包方案失效。从工具原理出发,对比不同抓包方案的暴露面,重点介绍如何利用Fiddler通过中间人代理获取明文流量,以及使用Wireshark进行被动监听规避检测的进阶技巧,并总结常见问题排查经验,为分

weixin_28607671的博客 367

Grid网格布局

布局简介 网格布局(Grid)是最强大的 CSS 布局方案。它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局。以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了。 Grid 布局与Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。 Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。Grid 布局.

weixin_44667463的博客 1793

深度学习笔记(1)机器学习与深度学习基础

一些深度学习的简单概念和Transformer的学习。

hanliu2003的博客 1492

警惕AI依赖:如何避免数字水蛭侵蚀你的认知能力

在人工智能技术日益普及的今天,人机协作已成为现代工作流的核心范式。其原理在于通过算法模型辅助人类完成信息处理、内容生成等任务,从而提升效率。然而,过度依赖AI可能导致认知卸载,引发思考能力退化等潜在风险。从技术价值看,AI的核心在于增强而非替代人类智能,关键在于建立健康的协作模式。在应用场景上,无论是编程开发、内容创作还是决策分析,用户都需警惕工具依赖对深度工作、创造性思维和决策责任的侵蚀。本文聚焦于识别AI依赖的早期信号,并提供构建分阶段使用流程、将AI作为质疑者等具体策略,旨在帮助读者守护核心认知能力,

weixin_30240349的博客 625

CSS的高级教程 -- Grid布局

grid布局

qq_54015136的博客 496

prplOS介绍

介绍prplOS是什么,特性、框架、编译等。

四儿家的小祖宗的博客 2125

CSS - 网格布局(grid)

网格布局、grid、表格布局、二维布局、网格轨道、grid-template-rows、grid-template-columns、grid-template、fr单位、min-content、max-content、minmax、auto-fill、auto-fit、网格单元、网格项目、网格线、grid-row、grid-column、grid-area、网格区域、grid-template-area、网格间距、gap、显示网格、隐式网格、稀疏包装、密集包装、网格单元对齐、网格项目对齐、统一对齐、单独对齐

优快云 7819

05 Transformer 到底解决了什么问题

Transformer 是现代大语言模型的底层骨架。本文不推公式,而是从 CNN、RNN/LSTM 的瓶颈讲起,解释 Transformer 如何通过自注意力同时解决长距离依赖和并行训练问题,并说明它为什么能支撑 GPT、BERT 和现代大模型的规模化。

老于的笔记的专栏 246

手把手教你模拟登录豆瓣并爬取个人书影音数据:从Cookie解析到反爬攻防实战

在开始写代码之前,先明确我们需要的工具。:建议用3.10以上版本,方便使用一些新特性(如match语句)httpx:比requests更现代,支持HTTP/2,异步性能强,连接池复用好:解析HTML,语法简单,容错性强selenium:仅用于处理登录时的滑块验证(模拟真人)pandas:最终数据清洗和导出Excel/CSVretrying:自动重试机制,应对临时封禁:随机UA,降低特征lxml:作为BeautifulSoup的解析器,速度快为什么不只用requests?

2201_76125261的博客 577

CSS栅格布局grid详解

栅格布局分为常规栅格和行内栅格,值分别为display:grid;和display:inline-grid;但是大多数栅格布局都是块级的。这里有一个需要注意的是,如果我们给一个标签设置了栅格布局,有的css属性和功能也就无法使用了,具体如下: 栅格容器上的所有column属性(column-count、columns等)都会被忽略。 栅格元素没有::first-line和::first-let...

lhxsirky的博客 3716

手把手教你学simulink(85.6)--非线性控制:滑模控制场景实例:基于Simulink建模仿真的滑模控制(Sliding Mode Control, SMC)在无人机自主飞行控制系统中的应用

首先,在MATLAB命令窗口中定义系统的参数和状态空间模型。matlab深色版本% 系统参数m = 1.5;% 无人机质量 (kg)g = 9.81;% 重力加速度 (m/s^2)% 惯性矩阵 (kg*m^2)% 初始条件pos0 = [0;0;0];% 初始位置 (m)vel0 = [0;0;0];% 初始速度 (m/s)0;0];% 初始姿态角 (rad)0;0];% 初始角速度 (rad/s)

MHD0815的博客 651

css 栅格布局 grid

通过css 栅格布局,实现3行3列布局,实现行列都自动缩放的效果。

lw的博客 725

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Css栅格布局-Grid】

到了box2设置了grid-column-start:1,所以会当前应当落位的位置从左到右,从上到下寻找最近的位于第一列的空位;grid-auto-rows与grid-auto-columns作用就是当grid-template-rows与grid-template-columns设置的行与列无法覆盖所有的时候,剩余的行和列默认使用的样式。grid-template-rows设置栅格行效果,grid-template-columns设置栅格列效果,这两个组合一起来进行使用,可以描绘出一个网格装的布局。

beilingxiaogu的博客 1216

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

CSS栅格布局(Grid)

今天写页面布局,突然想到了栅格布局,以往习惯了弹性布局,然后发现栅格布局有点香,然后就简单的整理了一下,用于学习与分享。 可以理解为将一个元素分成行列,然后可以设置对应的大小、布局、位置。 划分行列 使用 grid-template-columns 划分列数使用 grid-template-rows 划分行数假定一个需求,在一个容器内,左右列表,默认展示4列2行。(画的有点丑,哈哈哈哈)通过栅格布局进行页面的绘制。 上面代码发现,页面超出部分,高度不是25%了,那是因为容器外

ct5211314的博客 8292

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【CSS】栅格(Grid)布局

【CSS】栅格(Grid)布局 文章目录【CSS】栅格(Grid)布局声明栅格划分行列一个🌰简写形式的🌰行列间距栅格命名元素定位一个🌰根据偏移量(span)定位栅格对齐justify-content 和 align-content (栅格在容器内的排列)justify-items 和 align-items (所有元素在栅格内的排列)元素单独对齐 声明栅格 display: grid; display: inline-grid; 划分行列 使用 grid-template-columns 划分列数

前端学习博客 903

css系列-grid栅格布局

栅格介绍 #名词解释 CSS 网格布局(Grid Layout) 是CSS中最强大的布局系统。 这是一个二维系统,这意味着它可以同时处理列和行。 栅格系统与FLEX弹性布局有相似之处理,都是由父容器包含多个项目元素的使用。 #兼容性 下面是栅格系统兼容性数据,所以在根据项目使用的场景决定是否使用栅格布局。 #声明容器 #块级容器 <style> *...

前端蜗牛君 1982

css【详解】grid布局—— 网格布局(栅格布局)

目录 gird布局 和 flex布局的区别 Grid 布局的基本术语 网格布局的使用方法 启用网格布局display: grid 划分列grid-template-columns 绝对值 px 百分比值 % 比例值 fr auto值 minmax()函数值 repeat()函数值 划分行grid-template-rows 自动填充auto-fill 给网格线命名 [] 设置行/列的间距 指定区域 不属于任何区域的单元格,用.表示 多个单元格合并成一个区域 改...

朝阳39的博客 6万+

Joule Studio实战:从FAGLL03看SAP Skill开发边界与最佳实践

随着企业级AI助手逐渐融入日常业务,自然语言交互正成为用户获取信息的新入口。SAP Joule作为这一趋势下的核心平台,其Studio工具允许开发者通过描述、工作流与函数封装企业服务,实现意图识别与任务自动化。理解技能描述、触发条件及函数计算等原理,是技术实现的基础。在工程价值层面,Joule skill适合处理查询解读与决策辅助类场景,尤其能优化诸如财务总账行项目查询、往来对方名称展示等高频业务。本文以FAGLL03收付款对方名称为例,展示从需求拆解、函数设计到发布排错的全过程,并强调技术边界——AI助手

weixin_34413103的博客 200

css-grid布局(栅格布局)

* 数字和命名搭配搭配也可, 1 / t 注意如果是一个位置的话可省略, 比如 1 / 2 2 / 3 这里的2 3就可以省略*//* [d]150px 100px;搞不懂为什么加个命名就变小了.... *//* 目前喜欢这种的方式, 比较直观 . 表示这个位置空着 */grid 一个比flex更强大的布局,适合做整体布局。/* g-r-start g-r-end 的简称 *//* 相同的名字 代表相同的区域 */fr 只能放在第二个参数。

YogaMiller的博客 1179

[译] 你不需要基于 CSS Grid 的栅格布局系统

原文地址:You do not need a CSS Grid based Grid System 原文作者:Rachel Andrew 译文出自:掘金翻译计划 译者:LeviDing 校对者:Bamboo,H2O-2 在过去的几个星期里,我开始看到基于 CSS Grid 的布局框架和栅格系统的出现。我们惊讶它为什么出现的这么晚。但除了使用 CSS Grid 栅格化布局,我至今还没有看到...

weixin_33895475的博客 147

css3 grid栅格布局

前言 说实话,长这么大还从没用过栅格布局,都是在各个css面试题上了解,今天来系统的学习一下。 知识点 .father { display: grid; /* display: inline-grid; */ border: 1px solid #000; width: 1000px; height: 600px; /* grid-template-col

goutinga的博客 415

CSS3 grid 网格/栅格布局

grid 网格布局 十分钟教程

qq_43693115的博客 1200

前端 CSS 经典:grid 栅格布局

【代码】前端 CSS 经典:grid 栅格布局。

weixin_64684095的博客 2413

css grid网格布局(栅格布局)图解+代码详细讲解【收藏】

Grid 布局是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局,也是唯一的二维布局方案,利用grid布局可以很轻松的实现很多的网页布局gird布局很强大,采用网格布局的区域,称为"容器"(container)。容器内部子元素,称为"项目"(item),即container -> item注意:Grid 布局只对项目生效,项目只能是容器的一级子元素,不包含项目的子元素。

天天打码-16年老码农 1万+
上一篇: JS递归算法
下一篇: CSS 相对定位和绝对定位
Amy o-O
博客等级 码龄9年 19粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值