CSS实战:一键适配 RTL(阿拉伯语/希伯来语)布局
那个让我连续加班五天的“向左看齐”那年夏天,我第一次真正认识到RTL(从右到左)布局的威力——不是技术的威力,而是它对加班时间的摧残能力。那是一个面向中东市场的电商网站。英语版上线后,业务方激动地拍板:“快,我们要做阿拉伯语版!只要把文字翻译一下,加个dir="rtl"就行了,两周上线。”我心想:现代浏览器不就支持RTL吗?改一行HTML,完事。于是信誓旦旦地接下了任务。第一周:翻译团队交付了阿拉伯语文案。我把html dir="rtl"一加,刷新页面。嗯,文字跑到右边了,滚动条也换边了,看起来不错。我得意地跟PM说:“搞定,验收吧。”PM打开网站,第一个页面就皱眉头:“为什么导航栏的Logo在右边?品牌规范要求Logo必须在左上角(物理左上角),不管什么语言。”我赶紧补CSS:header .logo { position: absolute; left: 20px; }。好了。第二个问题:产品网格的卡片间距。用的是margin-right: 20px,在RTL下变成了卡片左边有间距,右边没有。列表最后一列总是多出一块空白。第三个问题:购物车页面的“结算”按钮在英语版里靠右,在阿拉伯语里用户期望它靠左(因为整个界面的“主要操作”应该在行尾——RTL下行尾是左边)。但我只顾着整体镜像,没考虑“操作按钮”这种有方向意图的组件。第四个、第五个……问题像多米诺骨牌一样接连倒下。我每天都在调试器里找哪个margin-left少了RTL覆盖,