grid-area四值写法必须写全且对应真实网格线,命名区域需严格匹配、引号包裹、行列数一致,二者不可混用,否则布局失效。
直接用 grid-area 四值写法或 grid-template-areas 命名区域,是实现艺术化杂志排版最可控的方式——前者锁死行列起止,后者让结构一目了然,但两者都极易因语法细节失效。
常见错误是只写两个或三个值,比如 grid-area: 1 / 1 或 grid-area: 1 / 1 / 3。浏览器会补 auto,结果元素卡在左上角第一格不动,而不是你预期的跨行跨列。
grid-area: row-start / column-start / row-end / column-end,四个数值一个都不能少grid-template-rows: 100px 1fr 200px 时,grid-area: 2 / 1 / 4 / 3 中的第 4 条行线根本不存在,声明会被忽略grid-area: 1 / -3 / -1 / -1 表示顶部两行、右侧最后两列,适合右上角信息栏grid-area: header / 2 / 4 / 5 是非法的——要么全用名字,要么全用数字它适合整页固定区块(如 header、main、sidebar),视觉结构清晰,但写错一个字符整条声明就失效,DevTools 里该属性会被划掉,所有子元素退回流式布局。
. 占位,不能留空格或省略grid-area: "xxx" 匹配失败"main main sidebar" 和 "main main footer" 才表示 main 占两行两列元素占了 2×3 的格子,但文字默认顶左对齐,图片可能拉伸变形——这不算完成排版。
立即学习“前端免费学习笔记(深入)”;
justify-self: center 让内容水平居中(只影响当前项目)align-self: start 把标题钉在顶部,align-self: end 把作者信息压到底部object-fit: cover 或 contain,并设 width: 100%; height: 100%
text-align 和 line-height 配合,align-self 只控制块级容器在格子内的位置真正难的不是写出第一版布局,而是当设计稿要求某区块在桌面端跨 3 行 2 列、在平板端变成 2 行 3 列、在手机端堆叠成单列时,如何让 grid-template-areas 字符串切换不崩、grid-area 线号不越界、内部对齐不重叠——这些地方没有报错,只有视觉错位,调试起来最耗时间。