6

例如:

<!doctype html>
<html lang="zh-cn">
    <head>
        <style type="text/css">
            body
            {
                font-family: sans-serif;
            }
        </style>
    </head>
    <body>
        <div>Test.</div>
    </body>
</html>

此 HTML 文档显示的字体不是我的浏览器无衬线字体。对我来说,它是 SimSun。

<!doctype html>
<html>
    <head>
        <style type="text/css">
            body
            {
                font-family: sans-serif;
            }
        </style>
    </head>
    <body>
        <div>Test.</div>
    </body>
</html>

这是正常的。

它只影响谷歌浏览器中的字体,我认为这可能与 CSS 属性“-webkit-locale”有关。

这是正常的吗?如何设置“sans-serif”的字体,以便“lang”属性不会改变字体?

4

1 回答 1

5

“在 Microsoft Windows XP 及更早版本的中文版本中,默认界面字体是带衬线的(MingLiU 和 SimSun),这与该产品的大多数其他(包括东亚)地区使用的无衬线样式不一致。从 Windows Vista 开始,所有地区的默认界面字体更改为无衬线字体,在繁体中文环境使用微软正黑,在简体中文环境使用微软雅黑。”

来自 Wikipedia.org http://en.wikipedia.org/wiki/East_Asian_sans-serif_typeface

解决方案:

使用不同的字体样式。中国和西方用户会得到不同的字体,即使他们有相同的名字。

或者,您可以使用 :lang(Lang-Code) 规则来区分字体样式。这是一个例子:

<!doctype html>
<html>
    <head>
        <meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'>
        <style type="text/css">
        body {
            font-family: "Times New Roman", serif;
        }
        :lang(zh-ch){
            font-family: SimSum-18030,SimHei, serif;
        }
        </style>
    </head>
    <body>
        <div lang="zh-ch">Chinese font </div>
        <div>Default font.</div> 
    </body>
</html>

演示:http: //jsfiddle.net/wCuND/

更多信息在这里。

http://www.w3.org/International/questions/qa-css-lang.en.php

于 2012-05-19T03:34:06.727 回答