css grid布局基础使用方法

CSS Grid 布局通过定义容器、行列、间距和项目定位实现二维布局。1. 设置 display: grid 启用布局;2. 用 grid-template-columns/rows 定义列宽行高,支持 fr 单位;3. 使用 gap 控制间距;4. 通过 grid-column/row 或 span 指定项目位置;5. grid-area 简写四边界;6. grid-template-areas 创建命名区域直观布局;7. repeat() 结合 auto-fit/minmax() 实现响应式网格。掌握这些可高效构建复杂页面结构。

css grid布局基础使用方法

CSS Grid 布局是一种二维布局系统,适合将页面划分为多个行和列组成的网格结构。它非常适合构建复杂的网页布局,比如仪表盘、卡片列表或响应式页面。以下是 Grid 布局的基础使用方法。

1. 定义网格容器

要启用 Grid 布局,先在父元素上设置 display: griddisplay: inline-grid

.container {  display: grid;}

这个容器内的所有直接子元素会自动成为网格项(grid items)。

2. 设置行和列

使用 grid-template-columnsgrid-template-rows 来定义网格的列宽和行高。

立即学习“前端免费学习笔记(深入)”;

.container {  display: grid;  grid-template-columns: 100px 200px 1fr;  grid-template-rows: 50px 100px;}

上面代码表示:三列,宽度分别为 100px、200px 和剩余空间;两行,高度为 50px 和 100px。
fr 单位表示“可用空间的一部分”,1fr 就是一份。

3. 网格间距

使用 gap 属性设置网格项之间的间距(推荐方式):

.container {  gap: 10px; /* 行和列的间距 */  /* 或分开写 */  row-gap: 10px;  column-gap: 20px;}

4. 网格线与项目定位

每个网格线都有编号,从 1 开始。可以使用 grid-columngrid-row 控制项目跨越的位置。

.item {  grid-column: 1 / 3; /* 从第1条线开始,跨到第3条线(占两列) */  grid-row: 1 / 2;    /* 占第一行 */}

也可以用 span 表示跨越数量:

jquery插件库合集 jquery插件库合集

pui 是一款基于jQyery开发的插件库。目前线上稳定使用已有2年多,丰富的接口,简单明了的调用方式,灵活的回调函数,让您轻轻松松打造出富有灵活交互的Web前端界面解决方案。插件库封装了布局、表单元素、表单校验、弹窗、toast、气泡pop、tab切换、日历时间、分页、表格、树、css命名等功能

jquery插件库合集 124 查看详情 jquery插件库合集

.item {  grid-column: 2 / span 2; /* 从第2列开始,跨越2列 */}

5. 简写属性 grid-area

grid-area 可以一次性定义项目的四个边界:

.item {  grid-area: 1 / 2 / 3 / 4;  /* 意思是:row-start / col-start / row-end / col-end */}

6. 使用命名区域布局

可以用 grid-template-areas 创建可视化布局结构:

.container {  display: grid;  grid-template-areas:    "header header"    "sidebar main"    "footer footer";  grid-template-rows: 60px 1fr 50px;  grid-template-columns: 200px 1fr;}

.header { grid-area: header; }.sidebar { grid-area: sidebar; }.main { grid-area: main; }.footer { grid-area: footer; }

这种方式更直观,适合整体页面结构设计。

7. 自动填充与重复

使用 repeat() 函数简化重复的列或行定义:

.container {  grid-template-columns: repeat(3, 1fr); /* 三列,每列等宽 */  /* 等价于 1fr 1fr 1fr */}

结合 auto-fitauto-fill 实现响应式网格:

.container {  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));}

这会让容器根据可用空间自动排列最小 150px 的列,并填满空间。

基本上就这些。掌握这些基础后,Grid 能帮你快速搭建灵活、响应式的布局结构。不复杂但容易忽略细节,多试几次就能熟练。

以上就是css grid布局基础使用方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1062817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月2日 06:06:59
下一篇 2025年12月2日 06:07:21

相关推荐

  • Docker Compose部署LEMP环境报错“Primary script unknown”是什么原因?

    Docker Compose 部署 LEMP 环境报错“Primary script unknown”解决方案 在使用 docker compose 部署 lemp (linux, nginx, mysql, php) 环境时,访问 php 文件出现 “primary script unknown”…

    2025年12月11日
    000
  • 如何高效查询MySQL中一年内下单频率最高的200名用户?

    高效筛选mysql数据库中过去一年下单频率最高的200位用户 在大数据环境下,快速定位过去一年下单频率最高的200位用户至关重要。以下提供一种高效的SQL查询方案: 首先,我们先计算每个用户在过去一年中的下单天数: SELECT COUNT(*) AS 下单天数, user_idFROM 订单表WH…

    2025年12月11日
    000
  • 如何高效排列矩形图片以最小化背景布长度并最大化利用率?

    高效排列矩形图片:平衡长度与利用率 给定宽度固定的背景布,如何排列N个不同尺寸的矩形图片,既能最小化背景布长度,又能最大化利用率?这是一个优化难题,因为长度最小化和利用率最大化往往存在冲突。 如果追求长度最短,通常采用紧密排列,但可能导致宽度利用不足,出现较大空隙。反之,如果追求最高利用率,则需尽可…

    2025年12月11日
    000
  • 如何最佳布局N个不同尺寸长方形以最大化固定宽度背景布的空间利用率?

    最大化利用固定宽度背景布空间的最佳长方形布局策略 本文探讨如何将N个不同尺寸的长方形,最佳地排布在一个固定宽度背景布上,以最大限度地利用空间,最小化材料浪费。此类问题在打印、包装设计等领域具有重要意义。 问题陈述 已知背景布宽度固定,需要在其上排布N个不同尺寸的长方形。排布规则如下: 所有长方形必须…

    2025年12月11日
    000
  • 阿里云服务器SSH连接失败但终端正常运行是什么原因?

    阿里云服务器SSH连接异常:终端正常,SSH及80端口却无法访问 本文分析一个常见的阿里云服务器问题:服务器IP可ping通,但SSH连接失败,80端口网站也无法访问,然而已登录的终端却能正常运行。 服务器资源(CPU、内存、带宽)及系统指标(线程数、文件打开数)均正常,连接数量调整也无效。 有趣的…

    2025年12月11日
    100
  • MySQL索引失效:为何shop_id索引在特定条件下失效?

    MySQL索引失效案例分析 本文记录并分析一个MySQL索引失效的案例。 表结构 以下为ns_delivery_shop表的结构定义: CREATE TABLE `ns_delivery_shop` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `…

    2025年12月11日
    100
  • MySQL索引失效:为何`shop_id`索引在数据量增多后失效?

    MySQL索引失效案例分析 本文分析一个实际案例,探讨MySQL索引失效的现象及原因。 数据库表结构如下: CREATE TABLE `ns_delivery_shop` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `goods_id` INT(…

    2025年12月11日
    000
  • Nginx proxy_pass如何使用正则表达式匹配变量进行代理?

    利用Nginx proxy_pass和正则表达式实现动态代理 本文介绍如何使用Nginx的proxy_pass指令结合正则表达式,实现根据域名动态转发请求到不同的后端服务器。 首先,通过正则表达式提取域名中的特定部分作为变量。例如,提取server_name中的二级域名: server_name ~…

    2025年12月11日
    000
  • 与同一产品的元组

    1726。与同一产品的元组 难度:中等 >主题:数组,哈希表,计数 给定一个不同的阵列,正整数,返回。> >示例1: >输入: nums = [2,3,4,6]>输出: 8 >说明:有8个有效的元组: (2,6,3,4) , (2,6,4,3) , (6,2,3,…

    好文分享 2025年12月11日
    000
  • 设计一个数字容器系统

    设计一个高效的数字容器系统,支持以下操作: 插入/替换: 将指定索引处的值替换为新值。如果索引不存在,则插入新值。查找最小索引: 返回给定数字在容器中出现的最小索引。如果数字不存在,则返回 -1。 挑战难度: 中等 相关主题: 哈希表,设计模式,最小堆(优先队列) 示例: [“NumberConta…

    2025年12月11日
    000
  • 与作曲家制作和共享PHP库

    Composer已成为PHP项目依赖管理和代码复用的核心工具。无论您是贡献开源项目还是提升个人开发效率,学习创建Composer包都是一项非常有价值的技能。本文将引导您完成构建和共享个人PHP库的完整流程。 准备工作 在开始之前,请确保您已具备以下条件: 扎实的PHP和Composer基础知识。已在…

    2025年12月11日
    000
  • Laravel注入命令:如何检测和防止它

    Laravel 命令注入漏洞:检测与防御 命令注入是严重的服务器端安全漏洞,允许攻击者执行任意系统命令。如果 laravel 应用在处理系统命令时未妥善处理用户输入,则极易受到此类攻击。本文将深入探讨命令注入,提供代码示例,并讲解如何保护您的 laravel 应用免受此类威胁。 我们还将介绍一款免费…

    2025年12月11日
    000
  • PHP中的PSR-容器接口

    PSR-11 规范定义了 PHP 依赖注入容器的标准接口。这一标准化使得库能够从任何容器实现中检索服务,从而提升不同框架和库之间的互操作性。 理解依赖注入容器 (DIC) 依赖注入容器负责: 管理服务定义创建服务实例解析依赖项管理对象生命周期 容器接口示例 立即学习“PHP免费学习笔记(深入)”; …

    2025年12月11日
    000
  • 拉维尔队列:巴士与链条

    Laravel 队列:提升应用性能的 Bus 和 Chain Laravel 队列用于处理耗时的后台任务,从而提升应用性能。核心概念是 Bus 和 Chain,它们赋予作业控制和链接能力。本文将深入探讨如何利用 Bus 和 Chain 在 Laravel 中构建高效的执行流程。 Laravel Bu…

    2025年12月11日
    000
  • 防止Laravel应用中的比赛条件

    竞争条件:laravel应用中的隐患及解决方案 竞争条件是并发系统(例如Web应用)中一个常见且严重的漏洞,可能导致不可预测的行为。本文将探讨竞争条件的成因、影响以及如何在Laravel框架中有效避免它们。 什么是竞争条件? 竞争条件发生在多个进程同时修改共享数据时,导致结果不可预测。这常见于:文件…

    2025年12月11日
    000
  • 冻结时间:测试Laravel临时存储URL

    上一篇文章探讨了两种测试Laravel Storage::temporaryUrl() 方法的技术。文章演示了如何使用模拟来处理本地不支持临时URL的情况。本文将深入探讨如何利用“冻结时间”技术提升测试临时URL的可靠性,尤其针对时间敏感型功能。我们将结合Laravel内置的测试助手和Carbon的…

    2025年12月11日
    000
  • 防止DNS在Laravel中重新启动:综合指南

    laravel安全指南:防御dns重绑定攻击 DNS重绑定是一种隐蔽的网络攻击,攻击者利用DNS欺骗绕过同源策略,访问私有网络资源。对于Laravel开发者而言,理解并防御DNS重绑定漏洞至关重要。本文将深入探讨DNS重绑定的工作机制、对Laravel应用的影响,以及有效的防御策略。我们将提供代码示…

    2025年12月11日
    000
  • 受邀参加会议的最大员工数

    2127。最大的员工被邀请参加会议 > 难度: hard 主题:深度优先搜索,图形,拓扑排序 >一家公司正在组织会议,并有n名员工名单,等待被邀请。他们已经安排了一张大圆桌会议,能够座位员工的任何数字。 员工的编号为0到n -1。每个员工都有一个> 的人,他们才会参加会议>,…

    2025年12月11日
    000
  • 我只是不能! nextjs?

    技术选型往往取决于个人偏好。不同开发者青睐不同的技术栈,这很正常!我个人偏好并非放之四海而皆准。我不执着于单一语言环境,反而更喜欢多语言协同工作。 我曾独立开发过许多React应用,但近来频率有所下降。目前主要使用Go (Echo或Fiber)、Django和Laravel (已成为我的最爱!)。 …

    2025年12月11日
    000
  • PHP特征:可重复使用的代码的秘密调味料

    “我需要在多个类中使用相同的功能,但继承并不适用?” Traits就像代码复用的秘诀——灵活、高效,能解决继承无法独自处理的问题。让我们一步步了解Traits(保证不会枯燥)。 PHP Traits究竟是什么? 简单来说,PHP Traits是一种在不使用正式继承的情况下,将方法注入类的方式。假设您…

    好文分享 2025年12月11日
    000

发表回复

登录后才能评论
关注微信