justify-self 和 align-self 用于 Grid 布局中单个网格项的对齐,前者控制行轴(横向),后者控制列轴(纵向)。取值如 start、end、center、stretch 可实现左/右、顶/底、居中或拉伸效果。两者结合可精确设置网格项在单元格内的二维位置,例如 justify-self: center 与 align-self: center 实现完全居中,而 justify-self: end 与 align-self: start 则实现靠右贴顶。注意仅在 Grid 布局中生效,flex 等其他布局不支持。

当在 css 中同时使用 justify-self 和 align-self 时,它们分别控制网格项(grid item)在行轴(inline axis)和列轴(block axis)上的对齐方式。这两个属性只在 Grid 布局中生效,且作用于单个网格项。
justify-self:控制横向对齐
该属性定义网格项在其所在网格区域的行轴方向上的对齐方式。常见取值包括:
- start:左对齐(LTR)
- end:右对齐(LTR)
- center:居中对齐
- stretch:拉伸以填满整个区域(默认值)
align-self:控制纵向对齐
该属性定义网格项在其所在网格区域的列轴方向上的对齐方式。常见取值包括:
- start:顶部对齐
- end:底部对齐
- center:垂直居中
- stretch:垂直方向拉伸填充(默认)
两者同时使用的效果
当你在一个网格项上同时设置 justify-self 和 align-self,就可以实现二维空间内的精确定位。例如:
.grid-item { justify-self: center; /* 水平居中 */ align-self: center; /* 垂直居中 */ }
这个元素会在其所在的网格单元格内完全居中——既水平居中,也垂直居中。
再比如:
立即学习“前端免费学习笔记(深入)”;
.grid-item { justify-self: end; align-self: start; }
元素会靠右对齐并贴顶显示。
注意:如果父容器是 Flex 或其他布局模式,这两个属性无效。它们仅适用于 Grid 子元素。
基本上就这些。只要理解了行轴和列轴的方向,就能准确控制单个网格项的位置。不复杂但容易忽略细节。


