这是14年前How can I draw vertical text with CSS cross-browser?人访问过的一个话题,似乎没有任何明确的解决方案.
理想情况下,我希望CJK和拉丁字符都是垂直的,底部面向右侧.
writing-mode: sideways-rl
将生成与我想要的完全匹配的以下输出.唯一的问题是:它是Firefox独有的,到2023年还没有其他浏览器支持它(https://caniuse.com/?search=sideways)
许多人提出了使用vertical-rl
,然后使用scale(-1)
或rotate(180deg)
翻转文本的解决方法.这对拉丁字符完全有效,但CJK文本将是颠倒的.
writing-mode: vertical-rl
transform: rotate(180deg)
我还try 将整个容器的水平书写旋转-90°,这会导致许多对齐和文本渲染问题,因为HTML对齐是在transform
之前计算的,而像margin: -100px; padding: 100px
这样的解决方案并不是很优雅,并且通常会导致更多的问题,例如指针命中框不对齐.