align-self: end 和 align-items: end 只控制网格项在单元格内的位置,不作用于项内文字;单行文本底部对齐用 line-height 匹配固定高度,多行则用 flex 容器加 align-items: flex-end。

align-self: end 只能让网格项贴底,不能让项内文字坐到底部——这是最常被卡住的地方。真正起作用的是容器内部的布局上下文,不是 Grid 容器本身。
为什么 align-items: end 在 Grid 容器上无效?
它只控制子项(比如一个 前提是容器高度固定、文字不会换行。这是最轻量的方案,但容错性差。 这是目前兼容性好、可控性强的通用解法。Grid 项本身设为 所谓“单行自动居中、多行自动居左/居底”的需求,没有稳定可靠的纯 CSS 实现方式。浏览器无法通过 CSS 原生判断内容是否溢出换行, 或 贴到了单元格底部,它的第一行文字仍从顶部开始渲染,行高撑开后底部留白明显。
grid-template-rows: 1fr; + align-items: end;,文字看起来“悬在半空”align-items 和 align-content 都不作用于文本内容本身,只管网格项盒子单行文本底部对齐:用
line-height 匹配高度
height(如 height: 2.5rem;),且 line-height 与之严格相等white-space: nowrap; 防止意外换行导致文字截断或错位em/rem 动态单位可能使 line-height 失效.single-bottom { height: 2.5rem; line-height: 2.5rem; white-space: nowrap; }
多行文本底部对齐:用
display: flex + align-items: flex-end
flex 容器,再由它来定位内部文字。
display: flex;、flex-direction: column;、align-items: flex-end;
min-height 或 height(哪怕只是 min-height: 3rem;))保持默认块级行为,无需额外样式position: absolute 更健壮——不依赖 position: relative 父级,也不怕内容溢出遮挡.grid-item { display: flex; flex-direction: column; align-items: flex-end; min-height: 4rem; }
换行判断不可靠,别试图用 JS 或 CSS 检测“是否单行”
text-overflow: ellipsis 和 line-clamp 也只控制截断,不提供状态反馈。
vs ,再分别应用不同对齐逻辑
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











