Css 当我转换到亚洲语言时,为什么西里尔语和希腊语的单词在字母之间有额外的空格?

Css 当我转换到亚洲语言时,为什么西里尔语和希腊语的单词在字母之间有额外的空格?,css,fonts,cjk,cyrillic,Css,Fonts,Cjk,Cyrillic,在我客户的网站上有一个bug,或者其他什么,如果你将语言切换到任何一个亚洲选项(CJK),然后再次打开语言选择器,“俄语”(俄语)、“希腊语”(希腊语)和“塞尔维亚语”(塞尔维亚语)在字母之间有额外的空格。如果选择任何其他语言,这些单词在语言选项列表中都可以。以下样式位于html元素上- font: 200 100%/1.5 sans-serif; 我读到在Mac电脑上,无衬线将把Helvetica作为它的首选,而在Windows上,它将是Arial。在my dev工具中,如果我将sans s

在我客户的网站上有一个bug,或者其他什么,如果你将语言切换到任何一个亚洲选项(CJK),然后再次打开语言选择器,“俄语”(俄语)、“希腊语”(希腊语)和“塞尔维亚语”(塞尔维亚语)在字母之间有额外的空格。如果选择任何其他语言,这些单词在语言选项列表中都可以。以下样式位于html元素上-

font: 200 100%/1.5 sans-serif;
我读到在Mac电脑上,无衬线将把Helvetica作为它的首选,而在Windows上,它将是Arial。在my dev工具中,如果我将sans serif更改为Helvetica,它会更改字体并修复问题,而不是我所期望的字体看起来完全相同。(我的Mac电脑上有Helvetica。我还没有在Windows中检查过。)下面是一个示例屏幕截图

事实上,现在我已经玩了一点,我发现当我选择韩语时,非韩语单词是用苹果哥特式翻译的,对于汉语来说,非汉语单词是用世纪哥特式翻译的,而对于日语来说,非日语单词是前卫的。有什么想法吗?我可以创建一个规则集,将Helvetica、Arial、sans serif指定为这些语言的字体堆栈,但是任何关于如何进行的解释都将是一个很好的学习体验

编辑:当我提到苹果哥特式、世纪哥特式和先锋派时,我的意思是,对于每种亚洲语言,我都在我的开发工具中将“sans serif”更改为其他字体名称,看看是否可以确定页面上非亚洲单词在CJK中默认的sans serif字体。我觉得奇怪的是,中文、日文和韩文都使用了不同的无衬线字体

语言选项列表的示例代码-

<ul>
/* other LIs here */
<li>Ελληνικά</li>
/* other LIs here */
</ul>

/* CSS for the LIs */

li {
font-size: .857em; /* computes to 16px */
list-style: none;
padding: .786em .714em .643em .714em;
transition: all 0.25s ease-in-out;
background-color: #fafafa;
border-top: 1px solid #d0d0d0;
color: #333;
margin: 0;
text-align: left;
}
    /*这里还有其他LIs吗*/
  • λληνκ
  • /*这里还有其他LIs吗*/
/*LIs的CSS*/ 李{ 字体大小:.857em;/*计算为16px*/ 列表样式:无; 填充:.786em.714em.643em.714em; 过渡:所有0.25秒缓进缓出; 背景色:#fafafa; 边框顶部:1px实心#d0; 颜色:#333; 保证金:0; 文本对齐:左对齐; }
在Mac(10.6.8)上的Chrome 37.0.2062.120和FF 32中进行了测试。顺便说一句,同一台计算机上的Safari 5.1.8没有重新处理该问题。

根据(我的重点补充),MacOSX附带了一个名为Hiragino的高质量日文字体系列。这些字体还包含拉丁文字西欧子集的高质量字形西里尔文字的基本希腊文和俄文子集的字形看起来很好,但经过了紧排以匹配汉字块的宽度。这使得字体不适合希腊文或俄文。”


此时,我的选择是测试Mac OS附带的其他字体,看看它们是否不将宽度应用于希腊和俄罗斯字符。如果它们都应用了宽度,我将使用前面提到的字体堆栈。此外,当我在Windows中检查此问题时,我没有看到此问题。

可能是因为您使用的字体不支持这些语言因此,浏览器使用第一种不同处理字母间距的可选字体。显示重现问题所需的最少代码(HTML和CSS),并明确指定测试的平台和浏览器。当您说“将语言切换到任何亚洲选项(CJK)”时“你是说Mac操作系统?我正试图为其他人调试这个问题。