前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
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 热点
旧版
首页程序员面试题库flex writing-mode 竖排
CSSFlex 布局

中文竖排时,Flex 的主轴还一定是横向吗?

不一定。flex-direction: row 指沿当前书写模式的行内方向,在 writing-mode: vertical-rl 中通常是纵向;column 沿块方向,通常横向从右往左。主轴与交叉轴跟随逻辑方向变化,所以不能把 row 固定理解成屏幕水平、把 column 固定理解成屏幕垂直。

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

书写模式改变 Flex 的轴

  1. writing-mode确定行内轴与块轴在屏幕上的方位
  2. flex-direction: row主轴跟行内轴走,竖排时通常是纵向
  3. flex-direction: column主轴跟块轴走,竖排时通常是横向

row 沿行内轴走,竖排模式里可能是屏幕竖直方向;不要把属性名当物理坐标。

核心回答

先记住这个答案

把容器改为 writing-mode: vertical-rl,原先横排的 Flex 项可能竖着走,这不是 row 失效。row 一直沿书写模式的行内轴,column 沿块轴;在这种竖排模式中,行内轴通常从上往下,块轴从右往左。判断对齐和换行时,应先画出这两条逻辑轴,再看 flex-direction 有没有反转。

  • row 沿行内方向
  • 竖排的 row 通常是纵向
  • column 沿块方向
  • 对齐属性仍按主轴交叉轴生效

竖排古诗中的行内方向

古诗展示想从上到下排字,每列从右向左换列。设置 writing-mode: vertical-rl 后,再用 display: flex; flex-direction: row 排卡片,卡片会沿竖直行内方向放置。若你本来想让几列卡片横向并排,反而可能要用 column。设计时先画出行内起点、块起点,再选 row 或 column,比反复试 row-reverse 更容易得到可预期结果。

切换竖排后确认主轴方向CSS
.poem {
  writing-mode: vertical-rl;
  display: flex;
  flex-direction: row; /* 主轴随行内方向变为纵向 */
  gap: 1em;
}
.poem > p { margin: 0; }

竖排后这组项目沿行内轴纵向排,gap 也落在该排列方向上。

书写模式改变 Flex 的轴

writing-mode 决定文字行的行内方向和行与行推进的块方向;direction 还影响行内起止方向。Flex 的 row / row-reverse 跟行内轴对应,column / column-reverse 跟块轴对应。justify-content 始终作用于主轴,align-items 作用于交叉轴,因此竖排后它们的视觉水平或垂直效果可能与普通横排页面对调。逻辑边距属性也更适合这种布局。

做竖排排版时,最容易看错的是 justify-content 与 align-items 的作用方向。row 的主轴现在沿竖直行内方向,前者会在竖直方向分配余量;交叉轴沿横向块方向,后者才在横向起作用。若把 row 改为 column,两种对齐的物理方向也会交换。再叠加 direction: rtl 或 row-reverse 时,主轴起点又可能翻转。不要靠属性名里的 row、column 猜屏幕坐标,在开发工具中画出逻辑轴更稳。

回答前,多想一步

容易答错的地方

把 row 翻译成物理水平行
它沿行内轴,竖排时可以是竖直方向。
只改 writing-mode,却继续用物理边距推断起点
margin-left 仍是物理左侧;需要跟随文本方向时应考虑 margin-inline-start 等逻辑属性。
试着用自己的话回答

面试官还会怎么问?

vertical-rl 中 column 往哪边走?

它沿块轴,在常见 vertical-rl 中块方向从右向左;反向值再交换起止。

justify-content 会变成控制竖向位置吗?

当 flex-direction: row 的主轴在竖排模式中变成纵向时,是的;它始终控制主轴。

direction: rtl 会影响什么?

它会影响行内起止方向,进而影响 row 的主轴起止;应与具体书写模式一起看。

从一道题,走向一组知识

把知识连起来

Grid 布局

Grid 的 auto-fill 和 auto-fit 什么时候看出区别?

Grid 的空轨道折叠与 Flex 的书写模式不同,比较时要分别看轨道轴和行内轴。

Grid 布局

Grid 自动放置会避开手动定位的项目吗?

Grid 自动放置按网格行列扫描,不使用 Flex 的主轴与交叉轴术语。

参考资料

  • CSS:Flex 布局参考资料

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

本题目录
  1. 先记住这个答案
  2. 竖排古诗中的行内方向
  3. 书写模式改变 Flex 的轴
  4. 容易答错的地方
  5. 面试官还会怎么问
  6. 把知识连起来
读懂,再试着讲出来

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

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