轴模型:从上下左右到 block / inline
物理属性 top / right / bottom / left 把方位钉死在屏幕上;逻辑属性改用两条随书写方向旋转的轴来描述方位:block 轴是行依次堆叠的方向(横排里自上而下),inline 轴是同一行内文字推进的方向(横排里从左到右)。每条轴有 start / end 两端,四个方位因此变成 block-start / block-end / inline-start / inline-end。它们具体落到哪条物理边,由 writing-mode 与
direction 共同决定。
1 · 两条轴如何贴到物理四边
改 writing-mode 与 direction,看四条逻辑边当前各自钉在哪条物理边。下面的映射不是查表写死的,而是把一条逻辑 margin 设到隐藏探针上、再用 getComputedStyle 读回浏览器解析后的物理 longhand 得到的。
2 · 全组合实测速查
同一条逻辑边,在 3 种 writing-mode × 2 种 direction 下落到的物理边(逐格实测):
规律:block 轴只受 writing-mode 影响——横排时纵向(top/bottom),竖排时横向(left/right)。inline 轴还要再叠加 direction:横排 ltr 下 inline-start 是 left,rtl 翻成 right。inline-start
永远指向「这一行文字开始的那一侧」。
**别把 inline 轴当成「水平」。**横排时 inline 轴恰好水平,容易误以为 inline-start 等于 left;一旦切到 vertical-rl,inline 轴变成垂直方向,inline-start 落到 top。逻辑属性的价值正是:一套写法在所有书写方向下都指向语义上「正确的那一侧」。