justify-content控制整个网格轨道在容器主轴(水平)方向的整体对齐,仅当列总宽小于容器宽时生效;justify-items控制每个网格项在其单元格内的水平对齐,默认stretch,二者作用层级不同但可共存。

justify-content 控制的是整个网格的水平位置
它作用于网格容器(display: grid)本身,决定所有列轨道(columns)作为一个整体,在容器水平方向上怎么摆放。当 grid-template-columns 总宽度小于容器宽度时,这个属性才起效。
常见使用场景包括:让三列网格在宽屏中居中、左右留白;或用 space-between 让首尾列贴边、中间等距。
关键点:
-
justify-content的取值如center、space-around、end都是针对“整块网格内容”的分布 - 它不关心每个格子里的内容长什么样,只管“这堆列”整体往哪放
- 在 Flexbox 中也存在同名属性,行为一致(主轴对齐),但 Grid 和 Flex 的主轴方向可能不同(取决于
flex-direction或grid-auto-flow)
justify-items 只影响每个网格项在单元格内的水平对齐
它定义的是每个网格项(grid item)在其所占据的单元格(cell)里,内容如何沿内联轴(通常是水平方向)对齐。注意:这个属性只对 Grid 有效,Flexbox 中写上也完全没反应。
比如一个 100px × 100px 单元格里放了一个 50px 宽的按钮,默认会拉伸(stretch),设成 justify-items: center 就会让按钮水平居中,不拉伸。
常见误区:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 误以为
justify-items: center能让整个网格居中——不能,那是justify-content的事 - 在 Flex 容器里加
justify-items,浏览器直接忽略,控制台也不会报错 - 它的默认值是
stretch,所以很多初学者发现文字没居中,其实是被拉宽了而不是没对齐
两者能同时用,但作用层级完全不同
在一个 Grid 容器中,justify-content 和 justify-items 可以共存,且互不干扰。前者管“网格块怎么摆”,后者管“块里每个小东西怎么摆”。
典型组合示例:
.grid {
display: grid;
grid-template-columns: repeat(3, 120px);
justify-content: center; /* 三列整体在容器中居中 */
justify-items: start; /* 每个格子里的内容靠左对齐 */
}
容易被忽略的细节:
-
justify-items是容器级属性,对所有子项生效;若只想调整某一个项,得用justify-self - 当单元格宽度由内容撑开(比如
grid-template-columns: max-content),justify-content可能失效——因为没有“剩余空间”可分配 - 响应式断点中,
justify-content常配合minmax()或fr单位使用,而justify-items更多用于微调内容密度
别和 align-* 系列搞混,方向是成对出现的
justify- 系列管水平(内联轴),align- 系列管垂直(块轴)。这不是约定俗成,而是 CSS 规范明确规定的轴向映射关系。
所以:
-
justify-content↔align-content(都是控制“整体”在各自轴上的分布) -
justify-items↔align-items(都是控制“每个项目”在各自轴上的单元格内对齐) - Grid 中没有
align-content的对应水平版——因为justify-content就是它的水平版
真正容易出问题的地方,是把 Flexbox 的习惯直接套到 Grid 上:比如在 Grid 里死磕 align-items 却忘了 justify-items 才是水平方向的“个体对齐”。轴向 + 作用对象(整体 vs 单元格内)这两个维度必须同时确认,否则样式会一直“不生效”。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










