前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
首页程序员面试题库CSS Grid justify-items与align-items默认值
CSSGrid 布局

Grid 的 justify-items 和 align-items 默认怎么对齐?

justify-items 管项目在行内轴的位置,align-items 管块轴的位置;默认值是 normal,在多数普通网格项目上表现为拉伸。图片等有固有尺寸或纵横比的项目可能不拉伸。baseline 用来对齐文本基线,不是让盒子底边对齐。

前端进阶之旅 · 一题精讲更新于 2026.09.29
CSS#Grid 布局#CSS Grid
先看核心答案读代码示例
理解线索

两个轴上的项目对齐

  1. justify-items控制行内轴的项目位置
  2. align-items控制块轴的项目位置
  3. baseline按文字基线参与对齐

justify-content 和 align-content 移动的是整组轨道,不是各格中的项目。

核心回答

先记住这个答案

justify-items 与 align-items 控制每个网格项目如何放在自己的网格区域内,分别对应行内轴与块轴。初始值是 normal;普通可拉伸项目通常看起来像 stretch,填满可用空间。但图片等有固有尺寸或纵横比的项目可能按 start 一类行为放置,不会无条件被拉扯。baseline 则让同一对齐上下文中的文字基线对上,而不是把卡片底边排齐。

  • 两个属性控制项目在格子内部的位置
  • 默认是 normal,常表现为拉伸
  • 有固有尺寸的项目可能不拉伸
  • baseline 对齐文本基线

格子比内容大时才看得清

假设一行高 160px,按钮本身高 40px。align-items: start 将按钮放在区域的块轴起点,center 居中,end 靠终点。justify-items 在另一轴做类似选择。若项目已经被拉伸至铺满区域,就看不出“居中”移动了多少;改为不拉伸后对齐效果才明显。

把卡片内容放到区域中心CSS
.tiles {
  display: grid;
  grid-template-columns: repeat(2, 180px);
  grid-auto-rows: 160px;
  justify-items: center;
  align-items: center;
}
.tiles > .feature { align-self: start; }
/* feature 只覆写自己的块轴对齐 */

align-self 与 justify-self 可以单独覆写某个项目,不必让整组卡片一起变化。若项目本身设置了明确宽高,对齐时它保持自己的尺寸;若没有明确尺寸,还应检查该项目是否可被拉伸、是否有自动外边距。

基线对齐适合文字不同高的卡片

两个标题分别用不同字号时,顶边对齐会显得文字落点不齐。设置 align-items: baseline 可让参与同一行基线对齐的项目以文字基线为参照。它不是把盒子底部压到同一线,也不保证每一行内容的最后一行对齐;不同内容没有可用的文本基线时还会使用替代基线规则。

方向要按逻辑轴理解。通常横排文字下,行内轴近似水平、块轴近似垂直;换成其他 writing-mode 后,不应机械地把 justify-items 永远说成“水平居中”。这也是面试里比死记横竖更准确的表述。

假设每个网格单元都是 200px 宽、120px 高,按钮只有 80px 宽,justify-items: center 会在单元内部水平居中它;若项目默认拉伸填满单元,单改对齐值后的差异可能被项目尺寸掩盖。基线对齐则适合两张卡片标题字号不同的场景,让文字落在共同基线上;它依据文本基线而非盒子顶部,图片和无文字项目还会涉及回退规则。

回答前,多想一步

容易答错的地方

说默认值就是 stretch
规范初始值是 normal,它在普通网格项目上经常表现为拉伸;有固有尺寸的项目存在例外。
把 align-items 当作整组轨道对齐
它移动格子里的项目。轨道组相对容器的多余空间由 align-content 等属性处理。
试着用自己的话回答

面试官还会怎么问?

只想让一张卡片靠底怎么写?

对那张项目设置 align-self: end,保留其他项目的容器级对齐。

为什么图片没有被默认拉满格子?

图片有固有尺寸或纵横比,normal 不一定表现为强制拉伸,避免画面被扭曲。

baseline 和 end 的差别是什么?

前者按内容的排版基线对齐,后者按网格区域块轴终点对齐,文字尺寸不同时结果会不同。

从一道题,走向一组知识

把知识连起来

Grid 布局

Grid 网格线的 -1 从哪一边开始数?

网格线定位决定项目属于哪个区域,对齐只决定它在区域内部的位置。

Grid 布局

Masonry 瀑布流和 subgrid 分别解决什么问题?

瀑布流与子网格关注轨道组织,对齐属性处理的是另一层几何关系。

参考资料

  • CSS:Grid 布局参考资料

示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。

本题目录
  1. 先记住这个答案
  2. 格子比内容大时才看得清
  3. 基线对齐适合文字不同高的卡片
  4. 容易答错的地方
  5. 面试官还会怎么问
  6. 把知识连起来
读懂,再试着讲出来

先看核心答案,再读代码。最后展开追问,检查自己有没有遗漏边界。

试着回答追问
浏览全部面试题理解原理,也关注真实的使用场景。回到顶部 ↑