display grid 概要

display grid 概要

  1. Grid 基本概念:

    • 什么是 CSS Grid 布局?

      CSS Grid 布局是一个二维布局系统,允许开发者创建复杂的网格布局,这是一个在行和列上同时控制布局的方法。

    • Grid 布局与 Flexbox 有什么不同?

      与 Flexbox 相比,Grid 帜局主要针对二维布局(可以同时处理行和列),而 Flexbox 更适合一维布局(要么处理行,要么处理列)。Grid 提供了对网格内部元素位置和尺寸的精确控制。

  2. Grid 容器属性:

    • display: griddisplay: inline-grid 有什么区别?

      display: grid; 创建一个块级网格,display: inline-grid; 创建一个行内网格。

    • grid-template-columnsgrid-template-rows 如何定义网格的列和行?

      grid-template-columnsgrid-template-rows 用于定义网格的列宽和行高,可以指定固定尺寸、百分比或使用fr单位来分配可用空间。

    • grid-gap(或 row-gapcolumn-gap

### 使用 CSS `display: grid` 创建页面布局 CSS Grid 是一种强大的二维布局系统,允许开发者通过行列来精确控制网页元素的位置。下面是一个简单的例子展示如何创建一个具有特定列宽和行高的网格容器。 #### 定义基本的Grid结构 为了设置一个基础的网格框架,在父级元素上应用 `display: grid` 属性,并指定其子项应按照怎样的模式排列: ```css .container { display: grid; grid-template-columns: repeat(5, 60px); /* 设置五列每列宽度为60像素 */ grid-template-rows: 30px 30px; /* 设定两行高度均为30像素 */ } ``` 此配置会生成一个由五个相同大小的小方格组成的单行,以及另一组同样规格但在下方紧邻的第一行[^1]。 对于更复杂的场景,比如想要混合固定尺寸与其他类型的单位(如百分比),可以这样定义列宽: ```css .grid-container { display: grid; grid-template-columns: 100px 20% 50px 100px 20% 50px; gap: 10px; /* 添加间距以区分各个项目之间的间隔 */ } ``` 这段样式声明了一个六列的网格,其中某些列采用固定的像素值而其他则基于视口的比例计算得出[^4]。 #### 控制项目的放置位置 除了设定整体架构外,还可以单独调整某个或某几个具体项目的摆放方式。这可以通过给目标元素附加如下属性实现: ```css .item-a { grid-column-start: 2; grid-row-end: span 2; } .item-b { grid-area: 1 / 3 / 2 / 5; } ``` 这里 `.item-a` 将被安排到第二列开始并跨越两个完整的行;`.item-b` 则占据从第一页起始至结束前一栏之间所有的空间. #### 自动填充与流动方向 当不确定要放入多少个项目时,可利用 `grid-auto-flow` 来自动处理新增加的内容。默认情况下它沿垂直轴扩展新行,但如果希望优先增加新的列,则需显式指明这一点: ```css .flexible-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); grid-auto-flow: column dense; } ``` 上述代码片段中的 `auto-fill` 关键字使得浏览器尽可能多地填满每一行直到达到最小最大约束条件下的最佳状态,同时 `dense` 参数确保即使存在间隙也会尝试紧凑排列剩余未分配的空间.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值