4968 字
14 分钟
图片网格:语法与完整示例

:::grid 是本博客的图片画廊容器指令。它把普通的 Markdown 图片排列成宽高比一致的响应式网格,并自动启用灯箱查看。适合用于文章配图、截图、作品集或小型相册。

同一画廊中的图片共用同一卡片比例。默认情况下,居中裁切会填满每张卡片并保持整行整齐;点击图片会在灯箱中打开完整原图。每个画廊都拥有独立的灯箱分组,不会与文章中的其他图片混在一起。

本文既是功能文档,也是视觉测试页。请在桌面、平板与手机宽度下查看这些示例,然后点击任意图片验证灯箱分组。

最简语法#

把 Markdown 图片直接写在 :::grid 与结束的 ::: 之间:

:::grid
![图片说明](./image-1.webp)
![图片说明](./image-2.webp)
:::

每张图片必须独占一个段落,图片之间保留空行。画廊中只放图片;段落、列表与代码块请写在容器之外。

下面是最简语法的效果。不带参数时,网格默认使用三列、16/10 比例与 cover。

最简语法效果:第一张图
最简语法效果:第一张图
最简语法效果:第二张图
最简语法效果:第二张图

参数速览#

所有参数都写在起始指令后的花括号中::::grid{parameter="value"}。

参数允许取值默认值作用
columns1 到 6 的整数3桌面端每行的列数。非法值回退为 3。
aspect正数比例,如 16/9、3/4、1/116/10显示卡片的比例,而非原图比例。
fitcover、containcover图片适配方式。cover 裁切填满;contain 保留完整图片,可能留下空白。

完整示例:

:::grid{columns="3" aspect="16/9" fit="cover"}
![第一张图](./image-1.webp "可选说明文字")
![第二张图](./image-2.webp "可选说明文字")
![第三张图](./image-3.webp "可选说明文字")
:::

下面的结果使用上述三列横向语法。请对比卡片比例、列数,以及标题优先于替代文本作为说明文字的方式:

参数示例:第一张横向图
横向说明 1
参数示例:第二张横向图
横向说明 2
参数示例:第三张横向图
横向说明 3

说明文字与替代文本#

图片的替代文本既作为无障碍替代文本,也作为默认说明文字。当图片带有可选的标题时,则改用标题作为说明文字:

![用于无障碍的文本](./image.webp "显示在图片下方的说明文字")

同一行中,说明文字会对齐到每张卡片的底部。说明文字换行不会让其他卡片浮动到不同高度。像 3:4、16:9 这样的比例文本可以直接写在正文、标题与替代文本中,无需转义。

本例展示了默认的替代文本说明文字、显式的标题说明文字,以及较长说明文字的底部对齐:

这张图片没有标题,因此用替代文本作为说明
这张图片没有标题,因此用替代文本作为说明
带无障碍替代文本的第二张方图
这个标题会显示为说明文字
3:4 海报的无障碍描述
这是一段较长的说明文字,用于检查每张卡片的说明在换行后是否仍底部对齐

布局与裁切#

桌面端布局使用 columns 指定的列数。低于 768px 时,网格最多使用两列;低于 480px 时,切换为单列。卡片外层固定 aspect 比例并裁掉圆角,图片填满卡片且不带主题默认的图片外边距。

  • 选择 cover:推荐的默认值。图片从中心裁切以填满卡片,让画廊看起来整齐一致。
  • 选择 contain:完整显示原图而不裁切。当图片比例与卡片不同时,主题背景会显现出来;适用于不能被裁切的图片。
  • 若想既保留完整图片又不留空白,请把 aspect 设为接近原图的比例,或让该图片独占一个网格。

下面的示例把同样的竖向图片分别放入 cover 与 contain 的 16/9 卡片中。前者会裁切,后者保留完整图片并留下背景空间。

:::grid{columns="3" aspect="16/9" fit="cover"}
![图片说明](./image-1.webp "可选说明文字")
![图片说明](./image-2.webp "可选说明文字")
:::
:::grid{columns="3" aspect="16/9" fit="contain"}
![图片说明](./image-1.webp "可选说明文字")
![图片说明](./image-2.webp "可选说明文字")
:::
第一张 cover 结果
Cover:居中裁切
第二张 cover 结果
Cover:填满卡片
第三张 cover 结果
Cover:布局更整齐
第一张 contain 结果
Contain:完整保留原图
第二张 contain 结果
Contain:可能出现空白
第三张 contain 结果
Contain:适合边缘细节

默认配置#

不带属性时,默认为三列、16/10 比例与 cover 裁切。这三张竖向图片用于验证默认裁切与说明文字。

:::grid
![图片说明](./image-1.webp)
![图片说明](./image-2.webp)
![图片说明](./image-3.webp)
:::
默认配置:竖向图片一
默认配置:竖向图片一
默认配置:竖向图片二
默认配置:竖向图片二
默认配置:竖向图片三
默认配置:竖向图片三

三列竖图:3:4#

使用 aspect="3/4" 时,这三张竖向图片会填满比例一致的竖向卡片。若原图比例不同,cover 会从中心裁掉其边缘。

:::grid{columns="3" aspect="3/4"}
![竖向图片说明](./portrait-1.webp)
![竖向图片说明](./portrait-2.webp)
![竖向图片说明](./portrait-3.webp)
:::
3:4 测试图一
竖图 1
3:4 测试图二
竖图 2
3:4 测试图三
竖图 3

三列横图:16:9#

这一组展示三列布局中常见的视频封面比例。当横向图片接近卡片比例时,裁切幅度很小。

:::grid{columns="3" aspect="16/9"}
![横向图片说明](./landscape-1.webp)
![横向图片说明](./landscape-2.webp)
![横向图片说明](./landscape-3.webp)
:::
16:9 测试图一
16:9 测试图一
16:9 测试图二
16:9 测试图二
16:9 测试图三
16:9 测试图三

两列方图:1:1#

需要更大的预览卡片时,两列效果很好。第三张图片会移到下一行。最后一行保持其网格轨道宽度,而不会拉伸图片去填满整行。

:::grid{columns="2" aspect="1/1"}
![方图说明](./square-1.webp)
![方图说明](./square-2.webp)
![方图说明](./square-3.webp)
:::
1:1 测试图一
1:1 测试图一
1:1 测试图二
1:1 测试图二
1:1 测试图三
1:1 测试图三

四列搭配 contain#

fit="contain" 不会裁切原图。当图片比例与卡片比例不同时,主题背景会显现出来。这是有意为之,并非布局问题。它同时验证了四列网格与各自独立的灯箱分组不会互相干扰。

:::grid{columns="4" aspect="16/9" fit="contain"}
![图片说明](./image-1.webp)
![图片说明](./image-2.webp)
![图片说明](./image-3.webp)
:::
Contain:竖向图片一
Contain:竖向图片一
Contain:竖向图片二
Contain:竖向图片二
Contain:竖向图片三
Contain:竖向图片三

单列细节图#

当图片需要更大的阅读尺寸时,单列是合适的选择。它在桌面、平板与手机上都是一列,原图依然可以在灯箱中查看。

:::grid{columns="1" aspect="16/9"}
![图片说明](./detail.webp)
:::
单列测试图
单列测试图

稀疏的五列一行#

五列用于验证更高的受支持列数。只有三张图片时,最后一行保持左对齐,而不会拉伸图片。

:::grid{columns="5" aspect="1/1"}
![缩略图说明](./thumb-1.webp)
![缩略图说明](./thumb-2.webp)
![缩略图说明](./thumb-3.webp)
:::
五列测试图一
五列测试图一
五列测试图二
五列测试图二
五列测试图三
五列测试图三

六列混排#

六列是当前的上限。混排横向与竖向图片可以验证 cover 裁切、窄卡片上的说明文字,以及密集的桌面布局。为了让文章内容便于阅读,通常建议使用两到四列。

:::grid{columns="6" aspect="1/1"}
![图片说明](./image-1.webp)
![图片说明](./image-2.webp)
![图片说明](./image-3.webp)
![图片说明](./image-4.webp)
![图片说明](./image-5.webp)
![图片说明](./image-6.webp)
:::
六列测试图一
六列测试图一
六列测试图二
六列测试图二
六列测试图三
六列测试图三
六列测试图四
六列测试图四
六列测试图五
六列测试图五
六列测试图六
六列测试图六

四列方图:1:1#

四张比例相同的方图是典型的四列布局。桌面端一行显示全部四张;平板收缩为两列,手机收缩为一列。

:::grid{columns="4" aspect="1/1"}
![方图说明](./square-1.webp)
![方图说明](./square-2.webp)
![方图说明](./square-3.webp)
![方图说明](./square-4.webp)
:::
方图一
方图一
方图二
方图二
方图三
方图三
方图四
方图四

六列横图:16:9#

六列横图很适合缩略图预览、作品集与截图索引。即使原图比例略有差异,cover 也能一致地填满每张 16/9 卡片。

:::grid{columns="6" aspect="16/9"}
![横向图片说明](./landscape-1.webp)
![横向图片说明](./landscape-2.webp)
![横向图片说明](./landscape-3.webp)
![横向图片说明](./landscape-4.webp)
![横向图片说明](./landscape-5.webp)
![横向图片说明](./landscape-6.webp)
:::
横向图片一
横向图片一
横向图片二
横向图片二
横向图片三
横向图片三
横向图片四
横向图片四
横向图片五
横向图片五
横向图片六
横向图片六

三列竖图:3:4#

这组六张竖向图片展示了人物、海报或手机截图的常见布局。图片排成两行三列,说明文字底部对齐。

:::grid{columns="3" aspect="3/4"}
![竖向图片说明](./portrait-1.webp)
![竖向图片说明](./portrait-2.webp)
![竖向图片说明](./portrait-3.webp)
![竖向图片说明](./portrait-4.webp)
![竖向图片说明](./portrait-5.webp)
![竖向图片说明](./portrait-6.webp)
:::
竖向图片一
竖向图片一
竖向图片二
竖向图片二
竖向图片三
竖向图片三
竖向图片四
竖向图片四
竖向图片五
竖向图片五
竖向图片六
竖向图片六

边缘关键内容:cover 与灯箱#

这些图片在靠近边缘处包含重要文字或细节。cover 让网格保持整齐,但可能裁掉这些边缘;点击图片即可在灯箱中查看未裁切的原图。对边缘敏感的内容请使用明确的说明文字,或改用下方的 contain。

:::grid{columns="3" aspect="16/9" fit="cover"}
![边缘关键内容](./critical-1.webp "打开灯箱查看完整的边缘内容")
![边缘关键内容](./critical-2.webp "打开灯箱查看完整的边缘内容")
![边缘关键内容](./critical-3.webp "打开灯箱查看完整的边缘内容")
:::
第一张边缘关键图片
打开灯箱查看完整的边缘内容
第二张边缘关键图片
打开灯箱查看完整的边缘内容
第三张边缘关键图片
打开灯箱查看完整的边缘内容

极端比例搭配 contain#

对于横幅、长截图以及其他极端比例的图片,contain 会完整显示原图。与 cover 不同,它可能留下主题背景空间,但绝不裁切内容。

:::grid{columns="3" aspect="16/9" fit="contain"}
![完整截图说明](./wide-1.webp)
![完整截图说明](./wide-2.webp)
![完整截图说明](./wide-3.webp)
:::
极端比例图片一
极端比例图片一
极端比例图片二
极端比例图片二
极端比例图片三
极端比例图片三

透明图片#

透明图片会露出卡片的主题背景。这个单列 contain 示例便于检查透明区域、原图边缘与灯箱行为。

:::grid{columns="1" aspect="16/9" fit="contain"}
![透明图片说明](./transparent.webp)
:::
透明背景测试图
透明背景测试图

灯箱导航#

点击网格中的任意图片即可打开 Fancybox 灯箱。在那里可以缩放、旋转、进入全屏、查看缩略图,并使用方向键切换。导航仅限于当前的 :::grid 容器:例如点击「16:9 测试图一」只会打开该小节中的另外两张横向图片。

同一篇文章中的普通 Markdown 图片仍单独处理,不会被加入任何网格画廊。

检查清单#

  1. 每个网格中的图片尺寸一致,说明文字位于卡片下方。
  2. 图片在悬停时轻微缩放;点击后可以缩放、旋转,并用键盘切换。
  3. 点击「16:9 测试图一」后,灯箱只能浏览该小节中的另外两张横向图片。
  4. 低于 768px 时,网格最多两列;低于 480px 时为一列。
  5. 「四列搭配 contain」中的竖向图片完整可见,留有空白且未被裁切。
  6. 五列与六列网格在宽屏上保持指定列数,随后按响应式规则收缩为两列或一列。
图片网格:语法与完整示例
https://www.dafeiyu.site/posts/image-grid-demo/
作者
蓝色大肥鱼
发布于
2026-07-13
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

评论

0 条评论

最后更新于 ,距今已过 108 天

部分内容可能已过时