CSS Grid 栅格系统

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: CSS 网格布局(Grid Layout) 是 CSS 中最强大的布局系统。 这是一个二维系统,这意味着它可以同时处理列和行。栅格系统与 FLEX 弹性布局有相似之处理,都是由父容器包含多个项目元素的使用。

1.Grid 栅格系统概述:

CSS 网格布局(Grid Layout) 是 CSS 中最强大的布局系统。 这是一个二维系统,这意味着它可以同时处理列和行。栅格系统与 FLEX 弹性布局有相似之处理,都是由父容器包含多个项目元素的使用。


2.使用栅格系统:

声明当前布局使用 grid 栅格栏布局:

display: grid;

设置栅格行列单元格数量和占比:

/* 使用栅格系统 行 */
grid-template-rows: repeat(2, 50%);
/* 设置栅格系统 列 */
grid-template-columns: repeat(4, 25%);

使用平均分配:

/* 平均分成4份,每一个单元格占1份 */
grid-template-rows: repeat(4, 1fr);
grid-template-columns: repeat(2, 1fr);

3.设置栅格间距:

/* 设置栅格间距 */
row-gap: 20px;
column-gap: 20px;
gap: 20px

4.栅格元素定位:

注意,当前情况下只能放置规则的矩形元素,对于不规则元素无法正常防止,可以在外部加上div包裹其进行防止。

样式属性

说明

grid-row-start

行开始栅格线

grid-row-end

行结束栅格线

grid-column-start

列开始栅格线

grid-column-end

列结束栅格线

上面几个样式属性可以使用以下值

属性值

说明

Line

栅格络

span 数值

栅格包含的栅格数量

span 区域名称

栅格包含到指定的区域名称

auto

自动设置,默认为一个网格宽度和高度

4.1 根据栅格线编号放置元素:

上顶边为行开始边,下底边为行结束边;左边为列起始边,右边为列结束边。

/* 通过编号将元素放置内容 */
grid-row-start: 1;
grid-column-start: 2;
grid-row-end: 2;
grid-column-end: 3;

4.2 固定命名放置元素:

独立命名:

grid-template-rows: [r1-start] 100px [r1-end r2-start] 100px [r2-end r3-start] 100px [r3-end];
grid-template-columns: [c1-start] 100px [c1-end c2-start] 100px [c2-start c3-start] 100px [c3-end];
grid-row-start: r2-start;
grid-column-start: c1-end;
grid-row-end: r2-end;
grid-column-end: c3-start;

自动命名:

对于重复设置的栅格系统会自动命名,使用时使用 c1、c2 的方式定位栅格。

grid-template-rows: repeat(3, [r-start] 100px [r-end]);
grid-template-columns: repeat(3, [c-start] 100px [c-end]);
grid-row-start: r-start 2;
grid-column-start: c-start 2;
grid-row-end: r-start 2;
grid-column-end: c-end 2;

4.3 简写模式:

可以使用 grid-row 设置行开始栅格线,使用 grid-column 设置结束栅格线。上例中的居中对齐元素,可以使用以下简写的方式声明(推荐)。

grid-row: 2/4;
grid-column: 2/4;

4.4 根据偏移量定位:

使用 span 可以设置包含栅格的数量或包含到的区域名称。

grid-row-end: span 1;
grid-column-end: span 1;

4.4 grid-area:

grid-area更加简洁是同时对 grid-rowgrid-column 属性的组合声明。语法结构如下:

grid-area: grid-row-start/grid-column-start/grid-row-end/grid-column-end。

命名方式:

grid-template-rows: repeat(auto-fill, [r] 100px);
grid-template-columns: repeat(auto-fill, [l] 100px);
grid-area: r 2/l 2/r 4/l 4;

5.栅格区域布局:

5.1 区域声明:

区域是由多个单元格构成,使用 grid-template-areas可以定义栅格区域,并且栅格区域必须是矩形的。

display: grid;
grid-template-rows: 80px 1fr 50px;
grid-template-columns: 100px 1fr 50px 60px;
grid-template-areas: 
    "header header header header"
    "nav main main aside"
    "footer footer footer footer";
main {
    /* 完整的写法,推荐使用下面的简写方式*/
    /* grid-area: main-start/main-start/main-end/main-end; */
    grid-area: main;
    background: #E9EEEF;
}
header {
    background: #2EC56C;
    grid-area: header;
}
nav {
    background: #E1732C;
    grid-area: nav;
}
aside {
    grid-area: aside;
    background: #EEBC31;
}
footer {
    grid-area: footer;
    background: #904FA9;
}

使用 grid-template 进行栅格划分会更简洁:

grid-template:
    '栅格名称 栅格名称 栅格名称 栅格名称' 行高
    '栅格名称 栅格名称 栅格名称 栅格名称' 行高
    '栅格名称 栅格名称 栅格名称 栅格名称' 行高/列宽 列宽 列宽 列宽;
相关文章
|
2月前
|
前端开发 容器
使用 CSS Grid 布局实现响应式设计
【10月更文挑战第1天】使用 CSS Grid 布局实现响应式设计
64 4
|
2月前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
2月前
|
前端开发 UED 容器
前端技术分享:利用 CSS Grid 实现响应式布局
【10月更文挑战第1天】前端技术分享:利用 CSS Grid 实现响应式布局
74 2
|
4月前
|
前端开发 开发者 容器
探索现代Web开发中的CSS Grid布局技术
【8月更文挑战第29天】在数字时代的浪潮中,网页设计不断进化以适应日新月异的用户需求。CSS Grid布局技术作为一项革新性的前端工具,为设计师和开发者提供了前所未有的布局能力。本文旨在通过深入浅出的方式介绍CSS Grid的核心概念、基本用法以及在实际项目中的应用,帮助读者快速掌握这一强大的网页布局工具。
63 3
|
4月前
|
前端开发 开发者 C#
WPF开发者必读:MVVM模式实战,轻松实现现代桌面应用架构,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,MVVM(Model-View-ViewModel)模式通过分离应用程序的逻辑和界面,提高了代码的可维护性和可扩展性。本文介绍了MVVM模式的三个核心组件:Model(数据模型)、View(用户界面)和ViewModel(处理数据绑定和逻辑),并通过示例代码展示了如何在WPF项目中实现MVVM模式。通过这种方式,开发者可以构建更加高效和可扩展的桌面应用程序。
211 0
|
前端开发 .NET 开发框架
Grid固定表头和固定栏css实现
.Freezing    {         position:relative ;    table-layout:fixed;    top:expression(this.offsetParent.
1153 0
|
4月前
|
前端开发
2s 利用 HTML+css动画实现企业官网效果
2s 利用 HTML+css动画实现企业官网效果
|
22天前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
46 7
|
22天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
31 6
下一篇
DataWorks