我有一个包含英文和中文文本的textarea的web应用程序。问题是,我不能用标准的等宽字体(Courier New或Lucida控制台)完美地对齐字母和字符:中文文本的宽度似乎是英文文本的两倍,但它不是2倍,而是1.8倍左右,至少在Windows操作系统中是这样,这在我的情况下看起来很丑陋,特别是如果文本很长的话。
<textarea style="font-family:monospace;"> |
中文字|
123456|
Englis|</textarea>
有没有一种简单的方法可以用CSS让中文字符看起来比英文字母宽2倍?
发布于 2018-05-19 13:19:20
在您的例子中,monospace字体不支持中文字符,因此使用了(不受欢迎的)备用中文字体,该字体与您的monospace字体中的英文字母不“合作”。
此外,尽管存在font-stretch,但您不能使用CSS将字体的字形宽度更改为任何所需的宽度。调整大小或宽度是可行的,但它会同时影响中文和英文文本,而宽度取决于空格的宽度。
不幸的是,没有简单的方法。最好的选择是使用等宽字体,并且支持中文字符,并且中文字符的宽度是英文字母的两倍。
发布于 2021-03-17 12:04:11
您可以使用微软视窗预装的繁体中文世界中广泛使用的“MingLiU”(英文名:細明體)。
请查看维基解释(仅中文):
https://zh.wikipedia.org/wiki/%E6%96%B0%E7%B4%B0%E6%98%8E%E9%AB%94?oldformat=true

<textarea style="font-family:MingLiU;"> |
中文字|
123456|
Englis|</textarea>
还有另一种中文等宽字体,如Sarasa Gothic (更紗黑體)和Noto Sans Mono CJK (思源黑体)。这些都是开源的,可以自由地用于任何目的。
<textarea style="font-family:Sarasa Mono TC;"> |
中文字|
123456|
Englis|</textarea>
<textarea style="font-family:Noto Sans Mono CJK TC;"> |
中文字|
123456|
Englis|</textarea>
https://stackoverflow.com/questions/50421855
复制相似问题