CSS 逻辑属性的几个使用场景

从 margin-inline 到 inset-inline,逻辑属性让组件在不同书写方向下少写一层特判。

本文目录

逻辑属性刚出现时,我以为它只和阿拉伯语、希伯来语这类从右到左的语言有关。实际用下来,它在普通的中文页面里也能减少不少特判。

水平方向

把 margin-left / margin-right 换成 margin-inline-start / margin-inline-end,组件就不再假设文字从左往右排。

对于图标和文字的间距,gap 通常更直接;只有在需要单侧偏移时,逻辑属性才真正体现价值。

定位

inset-inline-start 和 inset-inline-end 可以替代 left / right。写浮层、角标和关闭按钮时,这个替换几乎是无成本的。

什么时候不用

如果布局本身有明确的物理方向,比如图表坐标轴或者固定位置的装饰线,继续使用物理属性反而更清楚。

逻辑属性是表达“相对于文字方向”的工具,不是所有场景都适用。

讨论

评论由 GitHub Discussions 提供,点击后加载。未加载前不会产生第三方请求。