百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

推荐一款比flex更强大的CSS布局——Grid布局

toqiye 2025-02-09 14:15 19 浏览 0 评论

flex 布局是一维布局

Grid 布局是二维布局



flex 布局一次只能处理一个维度上的元素布局,一行或者一列

Grid 布局是将容器划分成了“行”和“列”,产生了一个个的网格。

Grid基础

display:grid 或 display:inline-grid 来创建一个网格容器

grid-template-columns 和 grid-template-rows 属性来定义网格中的行和列

一个网格单元是在一个网格元素中最小的单位

划分网格的线,称为"网格线"。应该注意的是,当我们定义网格时,我们定义的是网格轨道,而不是网格线。Grid 会为我们创建编号的网格线来让我们来定位每一个网格元素。m 列有 m + 1 垂直的网格线,n 行有 n + 1 跟水平网格线。比如上图示例中就有 4 根垂直网格线。一般而言,是从左到右,从上到下,1,2,3 进行编号排序。当然也可以从右到左,从下到上,按照 -1,-2,-3...顺序进行编号排序

grid-template-columns 属性和 grid-template-rows 属性

grid-template-columns 属性设置列宽,grid-template-rows 属性设置行高

.wrapper {

display: grid;

/* 声明了三列,宽度分别为 200px 100px 200px */

grid-template-columns: 200px 100px 200px;

grid-gap: 5px;

/* 声明了两行,行高分别为 50px 50px */

grid-template-rows: 50px 50px;

}

repeat() 函数:可以简化重复的值。该函数接受两个参数,第一个参数是重复的次数,第二个参数是所要重复的值。

.wrapper-1 {

display: grid;

grid-template-columns: 200px 100px 200px;

grid-gap: 5px;

/* 2行,而且行高都为 50px */

grid-template-rows: repeat(2, 50px);

}

auto-fill 关键字:表示自动填充,让一行(或者一列)中尽可能的容纳更多的单元格

.wrapper-2 {

display: grid;

grid-template-columns: repeat(auto-fill, 200px);

grid-gap: 5px;

grid-auto-rows: 50px;

}

fr 关键字:Grid 布局还引入了一个另外的长度单位来帮助我们创建灵活的网格轨道。fr 单位代表网格容器中可用空间的一等份。

.wrapper-3 {

display: grid;

grid-template-columns: 200px 1fr 2fr;

grid-gap: 5px;

grid-auto-rows: 50px;

}

minmax() 函数:我们有时候想给网格元素一个最小和最大的尺寸,minmax() 函数产生一个长度范围,表示长度就在这个范围之中都可以应用到网格项目中。它接受两个参数,分别为最小值和最大值。

.wrapper-4 {

display: grid;

grid-template-columns: 1fr 1fr minmax(300px, 2fr);

grid-gap: 5px;

grid-auto-rows: 50px;

}



auto 关键字:由浏览器决定长度。通过 auto 关键字,我们可以轻易实现三列或者两列布局。

.wrapper-5 {

display: grid;

grid-template-columns: 100px auto 100px;

grid-gap: 5px;

grid-auto-rows: 50px;

}

grid-row-gap 属性、grid-column-gap 属性以及 grid-gap 属性

grid-row-gap: 10px 表示行间距是 10px,grid-column-gap: 20px 表示列间距是 20px。grid-gap: 10px 20px 实现的效果是一样的

.wrapper {

display: grid;

grid-template-columns: 200px 100px 100px;

grid-gap: 10px 20px;

grid-auto-rows: 50px;

}

.wrapper-1 {

display: grid;

grid-template-columns: 200px 100px 100px;

grid-auto-rows: 50px;

grid-row-gap: 10px;

grid-column-gap: 20px;

}

grid-template-areas 属性

grid-template-areas 属性用于定义区域,一个区域由一个或者多个单元格组成

相关推荐

Star 17.3k!给它一张屏幕截图,即可一键克隆网页!

本文为大家分享一款本周爆火的GPT开源项目。前言你敢信,只凭借着一张屏幕截图即可转换生成HTML/TailwindCSS代码。可以算得上是前端工程师的福音。它就是screenshot-to-...

AI从截图直接生成代码、前端程序员的福利!

简介项目可以将任何屏幕截图或设计转换为干净的代码(支持大多数框架)。来自领先公司的开发人员和设计师使用的排名第一的工具。完全开源,在GitHub上拥有超过35,000颗星。非常受欢迎。各位小伙...

一款高颜值、跨平台、自托管的免费开源CRM项目——Twenty

前言大家好,这里是可爱的Cherry。作为一个“甲方”,Cherry其实挺知道客户管理的重要的。但是对于客户管理怎么做,以及CRM的作用,我却是一无所知。之前有朋友在评论区留言,说有没有开源的CRM系...

解放双手,前端界面再也不用自己写了?

随着AI技术的发展,现在有越来越多的尝试将AI应用于UI设计和开发中,以期提高效率和降低成本。今天就给大家介绍一个开源的AI网页生成工具:OpenUIOpenUIOpenUI是一个创...

代码调试,教给你(代码调试是什么意思)

昨天我和一些朋友一起调试代码,他们做程序员这一行都不太久,我向他们展示了一些代码调试技巧。今天早上我在想,我应该如何教授他们学习代码调试?我在Twitter上发了一条推文说,我从来没有见过任何好的调试...

Screenshot-to-code:用屏幕截图生成代码

Screenshot-to-code是一个简单的工具,可使用AI将屏幕截图、模型和Figma设计转换为干净、实用的代码。现在支持ClaudeSonnet3.5和GPT-4o!Scre...

next实现原理(next method)

Next.js是一个基于React的服务器端渲染(SSR)和静态生成(SSG)框架,它的实现原理涉及多个关键技术点,包括服务端渲染(SSR)、静态生成(SSG)、客户端渲染(CSR)、...

可逐步操作的具体流程(可逐步操作的具体流程包括)

假设你是一个单人开发者,使用主流技术栈(React+Node.js+MySQL),以下是详细步骤:---###**一、需求分析与原型设计**1.**核心功能清单**-用户能添加、删除、...

截图转代码只需1步!你离高效开发只差这款神器

引言在现代前端开发中,将设计稿转换为代码是一个既重要又耗时的环节。手动编写HTML结构、调试CSS样式、调整布局对齐,不仅耗费时间,还容易出错。而Screenshot-to-Code这款革...

web开发 前端 后端(web开发前端后端)

区别:1、前端是指用户可见的界面,而后端是指用户看不到的东西,考虑底层业务逻辑的实现,平台的稳定性、性能等。2、前端开发用到的技术有HTML5、CSS3、JS、jQuery、Bootstrap、Nod...

手把手教你Dify私有化部署,打造专属AI平台

一、Dify是什么?Dify是一款极具创新性的开源LLM应用开发平台,它就像是一把万能钥匙,为开发者们打开了通往生成式AI应用开发新世界的大门。其融合了后端即服务(BackendasS...

前后端分离架构设计:提升开发效率与业务支撑力的密钥

前后端分离架构设计解析一、定义与核心思想前后端分离是一种将用户界面(前端)与业务逻辑(后端)解耦的架构模式,通过RESTfulAPI或GraphQL实现数据交互。前端专注于视图渲染与交互逻辑...

Kubernetes最小部署单元Pod(kubernetes最小部署单元)

一、Kubernetes与Pod简介在当今云计算和容器化技术盛行的时代,Kubernetes已然成为容器编排领域的中流砥柱。它是一个开源的容器编排平台,由Google基于其内部使用的Bo...

【程序员必藏!零基础本地部署DeepSeek大模型保姆级教程】

为什么选择本地部署?数据安全:敏感代码/业务数据永不外传闪电响应:局域网推理延迟<100ms,告别云端排队深度定制:自由修改模型代码,打造专属AI助手准备工具(5分钟搞定)1核心工具下载...

【Python程序开发系列】使用Flask实现前后端分离(案例)

这是我的第398篇原创文章。一、引言随着web开发的不断发展,前后端分离已成为越来越流行的架构设计。Flask是一个轻量级的Pythonweb框架,非常适合用于构建API,然后配合前端框...

取消回复欢迎 发表评论: