css3+Grid

CSS Grid 的核心概念有哪些如下

  1. 网格容器(Grid Container):
  • 通过将元素的 `display` 属性设置为 `grid` 或 `inline-grid`,可以将其定义为网格容器。

  • 网格容器内的直接子元素会自动成为网格项(Grid Items)。

```css

.container {

display: grid;

}

```

  1. 网格项(Grid Items):
  • 网格容器内的直接子元素称为网格项。

  • 网格项可以放置在网格的任何位置,甚至可以重叠。

  1. 网格线(Grid Lines):
  • 网格线是网格的分界线,可以是水平线或垂直线。

  • 网格线用于定义网格的行和列。

  1. 网格轨道(Grid Track):
  • 网格轨道是相邻两条网格线之间的空间,可以是行轨道或列轨道。

  • 通过 `grid-template-rows` 和 `grid-template-columns` 定义行和列的大小。

  1. 网格单元格(Grid Cell):
  • 网格单元格是网格的最小单位,由相邻的行线和列线围成的区域。
  1. 网格区域(Grid Area):
  • 网格区域是由四条网格线围成的矩形区域,可以包含一个或多个网格单元格。

常用属性有哪些如下

  1. 定义网格结构
  • `grid-template-columns`:定义列的宽度。

  • `grid-template-rows`:定义行的高度。

  • `grid-template-areas`:通过命名区域定义布局。

```css

.container {

display: grid;

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

grid-template-rows: 50px 100px;

grid-template-areas:

"header header"

"sidebar main";

}

```

  1. 网格间距
  • `gap`(或 `row-gap` 和 `column-gap`):设置行与列之间的间距。

```css

.container {

gap: 10px; /* 行和列的间距 */

row-gap: 15px; /* 仅行间距 */

column-gap: 20px; /* 仅列间距 */

}

```

  1. 对齐方式
  • `justify-items`:控制网格项在单元格内的水平对齐方式。

  • `align-items`:控制网格项在单元格内的垂直对齐方式。

  • `justify-content`:控制整个网格在容器内的水平对齐方式。

  • `align-content`:控制整个网格在容器内的垂直对齐方式。

```css

.container {

justify-items: center; /* 水平居中 */

align-items: end; /* 垂直底部对齐 */

}

```

  1. 网格项定位
  • `grid-column`:定义网格项跨越的列。

  • `grid-row`:定义网格项跨越的行。

  • `grid-area`:将网格项分配到命名的网格区域。

```css

.item {

grid-column: 1 / 3; /* 从第1列到第3列 */

grid-row: 2 / 4; /* 从第2行到第4行 */

grid-area: header; /* 分配到名为 header 的区域 */

}

```

  1. 自动布局
  • `grid-auto-flow`:控制网格项的自动排列方式(默认是行优先 `row`,也可以设置为列优先 `column`)。

  • `grid-auto-columns` 和 `grid-auto-rows`:定义隐式创建的轨道大小。

```css

.container {

grid-auto-flow: column; /* 列优先排列 */

grid-auto-rows: 50px; /* 隐式行的高度 */

}

```


示例:简单的网格布局

```html

<div class="container">

<div class="item header">Header</div>

<div class="item sidebar">Sidebar</div>

<div class="item main">Main Content</div>

<div class="item footer">Footer</div>

</div>

```

```css

.container {

display: grid;

grid-template-columns: 200px 1fr;

grid-template-rows: 100px 1fr 50px;

grid-template-areas:

"header header"

"sidebar main"

"footer footer";

gap: 10px;

}

.header { grid-area: header; }

.sidebar { grid-area: sidebar; }

.main { grid-area: main; }

.footer { grid-area: footer; }

```


优势在于哪些

  1. 二维布局:Grid 可以同时控制行和列,适合复杂的布局需求。

  2. 响应式设计:结合媒体查询,可以轻松实现响应式布局。

  3. 灵活性:支持动态调整网格大小(如 `fr` 单位)和自动填充。

  4. 代码简洁:相比传统的布局方法,Grid 代码更简洁、易维护。


相关推荐
keyipatience2 小时前
TypeScript学习(1)
前端·javascript·学习·typescript·html·css3
王大师王文峰12 小时前
HTML 入门到进阶:语义化标签、表单与多媒体一篇打通【语义化布局、表单校验、video/audio、Canvas、无障碍与 SEO】
前端·css·node.js·html·css3·jquery·html5
晓得迷路了1 天前
栗子前端技术周刊第 150 期 - Stack Overflow 开发者调查结果、TanStack Start 1.0...
javascript·css·后端
ShineWinsu3 天前
对于CSS:弹性布局(Flexbox)的解析
前端·css·面试·浏览器·web·网页·弹性布局
云老大-阿里云国际站代理商3 天前
华为云国际站渠道代理商:CSS查询很慢但CPU不高?磁盘I/O、JVM与分片问题怎么排查
css·jvm·华为云
定栓3 天前
Webpack迁到Vite第三节:Less 与 CSS 处理
css·webpack·less
ShineWinsu3 天前
对于JavaScript:初识JavaScript以及输入输出
java·开发语言·前端·javascript·css·面试·html
码银3 天前
【web】基于HTML/CSS,JavaScript + Three.js做3D流程图
前端·css·html
keyipatience4 天前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
酷炫码神4 天前
Day 2|CSS 盒模型:把昨天的骨架,变成能看的页面
前端·css