中文网页的字体

在 Web 上应用字体是一项基本技术,同时也是一门艺术。对于英文字体来说可选择的范围实在是太广泛了,合理的使用它们将会为你的网站增色不少。关于英文字体的使用和搭配技巧,在这里不做赘述,只推荐一套非常好的视频:Fundamentals of Design by CodeSchool

{{more}}

而真正的挑战在于中文字体,由于中文字体组成的特殊性导致其体积过于庞大,除了操作系统内置的字体之外,我们很难在网站上应用其他的字体。在可选性很差的前提之下,如何正确的使用中文字体呢?

首先,以下的字体声明都是很糟糕的,切忌使用:

font-family: “宋体”;

font-family: “宋体”, Arial;

font-family: Arial, “宋体”, “微软雅黑”;

font-family: Helvetica, Arial, “华文细黑”, “微软雅黑”;

中文字体也有英文名称

很多开发者忽略了这一点:尽管我们在操作系统中常常看到宋体、微软雅黑、华文细黑这样的字体名称,但实际上这只是字体的显示名称,而不是字体文件的名称。虽然说在大多数情况下直接使用显示名称也有效,但有些用户却工作在一些很极端的情况下,这会导致你的字体声明无效。

比如说,用户安装了中文版的操作系统(这意味着系统有中文字体),但是却切换到了以英文为主要语言——这种情况在那些希望加强英语锻炼的中文用户当中是很常见的。这时候,操作系统很有可能无法按照显示名称找到正确的字体,所以我们要记住的第一件事情就是: 同时声明中文字体的字体名称(英文)和显示名称(中文),就像这样:

font-family: SimSun, “宋体”;

font-family: “Microsoft YaHei”, “微软雅黑”;

font-family: STXihei, “华文细黑”, “Microsoft YaHei”, “微软雅黑”;

永远不要忘记声明英文字体,并且英文字体应该在中文字体之前

记住这个事实:绝大部分中文字体里包含英文字母(但是基本上都很丑),而英文字体里不包含中文字符。

在网页里中/英文混排是很常见的,你绝对不会喜欢用中文字体显示英文的效果,所以一定不要忘了先声明英文字体:

font-family: Georgia, SimSun, “宋体”;

font-family: Arial, “Microsoft YaHei”, “微软雅黑”;

另外还有一个好习惯,就是在最后补充英文字体族的名称。字体族大体上分为两类:非衬线和衬线,它们之间的区别和使用规则请见本文开始介绍的视频。一般来说,你应该这么做:

font-family: Georgia, SimSun, “宋体”, serif;

font-family: Arial, “Microsoft YaHei”, “微软雅黑”, sans-serif;

请注意:以上两句声明中的宋体和微软雅黑不应该调换(尽管调换了也不会发生错误),这是因为从字体的式样来看,微软雅黑是非衬线的,而宋体才是衬线的。然而中文并不像英文那样严格区分字体族,所以这一点在实际应用当中并不那么重要。

别忘了照顾不同的操作系统

作为一个 Web 开发者,你理应对 Windows, Mac OS, Linux 家族等常用操作系统里的系统字体有足够的了解,特别是中文。在这里,我们假设目标网站要同时给予 windows 用户和 mac 用户最好的字体体验,于是我们可以这样声明:

font-family: Helvetica, Tahoma, Arial, STXihei, “华文细黑”, “Microsoft YaHei”, “微软雅黑”, sans-serif;

这句声明都做到哪些事情呢?让我们一一说明(括号内代表其对应的目标操作系统):

对于英文字符,首先查找Helvetica(Mac),然后查找Tahoma(Win),都找不到就用Arial(Mac&Win);若是以上三者都缺失,则使用当前默认的sans-serif字体(操作系统或浏览器指定);
对于中文字体,我们已经了解其规则了。华文细黑(Mac),微软雅黑(Win)是这两个平台的默认中文字体。

注意向下兼容

到此为止,我们的字体声明已经很不错了——如果你不必考虑还在使用旧版本操作系统的用户的话。遗憾地是,中文市场还有大量的用户在使用 Windows XP,宋体才是他们的主要中文字体。为了照顾到这些用户,你可以为微软雅黑增加一个 fallback:

font-family: Helvetica, Tahoma, Arial, STXihei, “华文细黑”, Heiti, “黑体”, “Microsoft YaHei”, “微软雅黑”, SimSun, “宋体”, sans-serif;

同样地,你看到我们也为 Mac 系统使用了黑体作为 fallback。

其他

不加双引号可以吗?

可以。有些英文字体的名称多于两个单词,因为单词中间有空格所以需要用 “” 包裹起来。中文字体很特别,按照英文的角度来看,像微软雅黑究竟算是一个词还是四个词呢?没关系,好在中文字体的名称里没有空格,所以 “” 不加也没什么大碍。

不过,谁都不能保证在任何操作系统/浏览器环境下都是如此,若是发生了奇怪的事情,不妨加上双引号试试看。

可以默认显示某种字体吗?比如微软雅黑

你可能注意到了,在我们最后的字体声明里,华文细黑是默认字体(如果你的系统上安装了声明里所有的中文字体的话),为什么我要先声明 Mac 系统的字体呢?

按理来说,大多数网站的主要目标市场还是 Windows 用户的,所以理论上这个才是合理的声明:

font-family: Helvetica, Tahoma, Arial, “Microsoft YaHei”, “微软雅黑”, SimSun, “宋体”, STXihei, “华文细黑”, Heiti, “黑体”, sans-serif;

但实际上却并非如此。在中文字体的用户群体里,很大一部分拥有 Mac 的人都同时安装了 Win 下常用的中文字体(这得归功于 Office for Mac);但极少有 Win 用户去安装 Mac 下的中文字体。

因此,把 Mac 用字体声明在前面几乎不会对 Win 用户产生什么影响(因为他们压根没有!),倒是用来做 fallback 的黑体可能会取代微软雅黑的位置,所以更保险的做法或许是这样:

font-family: Helvetica, Tahoma, Arial, STXihei, “华文细黑”, “Microsoft YaHei”, “微软雅黑”, SimSun, “宋体”, Heiti, “黑体”, sans-serif;

但无论如何请不要把微软雅黑放在中文字体的最前面,作为史上最丑陋的中文字体之一,微软雅黑实在不是什么好的选择,请照顾一下被 Mac 宠坏的用户吧,谢谢!(仅代表个人观点)

BTW,如果你也像我一样不喜欢呆头呆脑的微软雅黑,那就干脆把它删了吧~

到此为止,虽然在我们的示例代码里没有包含 Linux 家族的例子,不过相信你也明白该怎么做了吧。

一点补充

鉴于一些人对微软雅黑的排位产生异议,我不妨把上文的解决方案再延伸一步。事实是这样子的:

把微软雅黑放前面,会导致安装了微软雅黑字体的 Mac 用户不得不面对微软雅黑,而在 Mac 下比微软雅黑优雅得多的中文字体比比皆是;
把 Mac 下的字体放前面,也会对 Windows 用户造成差不多的困惑,毕竟微软雅黑是 Windows 平台下显示效果最好的字体(目前为止);

1 和 2,哪一种出现的概率更大一些?我想这是一个不需要计算就能知道的答案吧?

但是——的确还有另外两个因素在纠结着:

不少 Windows 用户因为各种原因关闭了 ClearType,在此情形下微软雅黑将会惨不忍睹!但是 Mac 的字体也不是好的选择,真正的胜出者?猜对了,宋体。
绝大部分 Mac 下的黑体在 Windows 下模糊不清,而微软雅黑虽然丑但在 Mac 下至少能看。(间接体现了两个平台的字体渲染技术的差距)

所以在实践中,真正接近“万无一失”的方案需要考虑以下几点:

利用 UA 判断为不同的平台加载不一样的字体声明;
除非有特别的原因,否则尽量保持正文用宋体,标题和其他可以放大些的地方用微软雅黑(针对 Windows);
Mac 下的冬青体效果极佳,但是该字体在 Mac OS X 10.6 以前是没有的,所以谨慎考虑你的用户群体,或者使用华文黑体系列做 fallback;

最后,我不想再和任何人争论字体的优劣,本文的目的是介绍使用方法而不是字体选择。“美”或“丑”向来都是很主观的事情,只因为我是作者,所以我免不了会有倾向性,然而我也相信你自己会有正确的判断,和我较真没有任何实际意义。

本文来自于nightire,原文地址。

原文链接:http://designlei.com/coding/%e4%b8%ad%e6%96%87%e7%bd%91%e9%a1%b5%e7%9a%84%e5%ad%97%e4%bd%93/

旅行@2

要是说,这次旅行最大收获是什么,
绝对不是美食和shopping,
而是对于人生的一些感悟。

期间无论是东京这边,还是中国这边,
都发生了很多事。
在东京让我有所感悟的地方也很多。
但对我影响最大的,应该还是昭和纪念公园

当时选择去这个公园有着很复杂的原因。
作为中国人来讲,其中最有趣的,
就是这里曾经是美国占领军的基地。
美军撤走以后,
日本人以“緑の回復と人間性の向上”为理由,
将此地修成了一个公园。

东京的大部分公园都是免费的,
但是国营昭和纪念公园收费,
而且收了门票钱还不归立川市,
因为是“国营”。
日本各县市区都是高度自治,
所以这种情况并不多见。

而且就是因为不归立川市管理,
按理说也就没有了财政拨款,
所以门票也特贵,
居然达到了400日元。(人民币24元左右)
并且不像其他的公园,不全天开放。

门票
国营昭和纪念公园门票

门票贵是贵,不过风景确实很好。

昭和纪念公园的湖水
昭和纪念公园的湖水

蓝天白云,
碧水蓝天。
就差点绿色,梅花盛开之时。

游水的鸭子
游水的鸭子

整个旅行中间,
虽然过着开心的日子,
但工作与感情两不得志
还是很郁闷。

看到这等祥和景色,
心情也开朗多了。
至少说,不再是负数。

东京是个快节奏的城市,
但在公园里,
一切都是平和的,慢慢的。
东京人真会过,
在城市里可以用这么清静的地方躲一下。
接近大自然。

木柴堆的蜗牛
木柴堆的蜗牛

干净,
公园里特别干净,
水也干净,
路也干净,
草地也干净,
天也干净。

慢慢逛着,
脑袋里一直纠缠着的,撕扭着着的,
也静了。

慢慢走着,
突然发现前方有一大片空地。

一大片空地
一大片空地

中心有一个大树,
由于刚开春,
还没有绿色。

我慢慢靠近那棵大树,
走啊走啊,走了好久,都没见树接近。
期间,有野餐的家庭,
有踢球的孩子,
有放风筝的男子,
也有情侣坐在草地上谈天。

大树
大树

走了10多分钟,
终于接近了。

我被彻底震撼了。
大树我也见过很多,
但这么大一片空地上,
只有这么一棵树的震撼力,
照片是无法展现的。

我越往前走越开心,
止不住的笑。
世界里只有这棵树,
其他都是空旷旷的,
什么都没有了。

我放下了一切,
仰望着这棵大树,
转着圈看着周围无忧无虑的人们。
空间太大了。
如果没有这棵树,
根本不会体会到到底天地可以有多大。

接近了大树
接近了大树

在大树的下面,环顾着这个空间中的一切,
什么烦恼都放掉了。

我席地而坐,背对着它。
躺下来,看看蓝天。
太踏实了。

我们为了那么多小小的琐事在烦心个什么呢。
这才是生活啊。
世界可以这么大。

也许你去过世界各地,
也许你住着超级套房,
也许你去过最大的广场,
但你能体验到的空间只有那么大啊。
你的周围总是充满了人,建筑物,各种噪音,各种灯光。
独处的空间能有多大呢。

夕阳下的大树
夕阳下的大树

那段时间里,
第一次思绪那么放松,
那么安心的呆着,
我知道这里全都属于我的,
没有人会来打扰我。

后来和一个爱好摄影的大叔,在同一个角度照下了夕阳下的大树。
对于美的理解和追求,是不分国界,民族的。
我起身往外走,
不禁回头看看,
我知道我又要返回那个让人紧张窒息的空间了。

旅行@1

从日本回来之后,一直没有整理什么,任凭所有照片和感受躺在那里。
这次去日本旅行获得的远大于第一次。
可能因为第一次去还有其他人陪同,注意力也都放在了工作上。

80%的憎恨都源于误解,80%的误解源于不了解。

我记得出发前一天,
东京下了一场很大的雪,大到我有点担心飞机能不能正常降落。

Shibuya
Shibuya

图为在涉谷的忠犬八公像

当然,出发的时候国内是气温宜人,晴空万里(当然有点雾霾)

周水子国际机场
周水子国际机场

虽然还是有点担心天气的问题,毕竟不是第一次坐飞机了。
担心果然是正确的。
刚飞出陆地就遇见湍流,一直湍到成田。。。
做个比喻的话,这个飞行员把飞机开的和三路汽车似的。(多次感受到了失重,谢谢中国航空)

经过担惊受怕的飞行,安全落地后,
赶紧利用成田的机场Wi-Fi和领导们报了平安。(Skype is good)
之后在成田机场看到了让我心情很复杂的东西。

华为的广告
华为的广告

一方面我对这家公司的印象不是很好(打过不可告人的交道。。。)
一方面佩服它打海外市场的能力。

到了成田,微微下了点小雨,气温宜人,
从大连出发的时候,我只穿了件衬衫。
满以为东京和大连纬度差不多,
应该大丈夫才对。
事实却是如此嘛。

不过这只是在成田。。。。东京也老大了。

这边寻找免费14天的Wi-Fi未果之后,赶紧去乘JRExpress(高铁)赶往目的地。

天空树
在高铁上拍天空树

随着车越越发现不对劲,
怎么出现了积雪。。。。。

东京街头的积雪
东京街头的积雪

瞥见六

「Absolutely. He is not wolf.」
「Are you sure is HE? Not IT?」
「Obvious.」
「Em…Interesting.」
Then, he intends to play the next audio.
「Wait…it’s weird.」
He stuns for seconds.
「You mean…It came from a male. Is it?」
「Exactly.」
「What the hell. How do you know it.」
「I able to learn just as design.」
「Crap. You designed for distinguish wolf’s voice, not human’s! You should just respond YES or NO by the fucking design!」
「Just by learn, dude.」
He notices there’s a creepy smile on screen with ASC notations.
「Do you know what’s the meaning of the human beings?」
「Actually No. I don’t know the meaning of the WOLF, neither.」
「Fine. We have to done it today. Let’s go on. Here we go. Sample No.2.」

瞥见五

他送给了她一块石头,
她的笑容立刻僵住了。
看着这个精心密封的玻璃盒子,
她努力地掩饰自己失落的情绪。
他也不是个耳清目明的人,
没有觉察那转瞬消失的微表情。
"挺好看的,谢谢啦。"
"哈哈,我找了好久呢"
"我还有事,先走了。"
"哦。。。好吧。"

「终究还只是个小男孩吧」,她苦笑道。
轻轻的把那块石头放在了角落里。
最后她选择了送给她钻戒的那个男人。

其实他是懂得她想要什么,
那块岩石与地球同岁,
见证了地球诞生以来的岁月变迁,
他在世界最高之颠取得,
其中包裹了生命起源之最直接证据,
一块足以换得整个世界。

「终究只是一个小女孩吧。」

以德报怨,以怨报德。
对自己人从来都是百般刁难,不惜下狠手,
对外人却唯唯诺诺。
这种只懂窝里横,到外面就装孙子的,一般都叫ta贱种。
可惜的是,这样的贱种太多了。
历史上强大的组织都是内部奖惩分明,全心全力一致对外,
把心思都放在如何整自己人,大搞顺我者昌逆我者亡的组织,
下场从来都很悲惨。

在这种组织里,没有人会过的安生。
強者,多不得好死,做弱者,多不得好活。

瞥见四

“你能感受到吗?“他伸出左手食指,指了指对面的墙。”就在这个位置。“
我闭上眼睛,深呼吸,清空一切杂念。
…………是那里吗?………………不是………………好像是这里…………有干扰…………
就是这儿!
数据的流动。
尽管被遮蔽的很好,但还是有一丝丝气息渗透了出来。
相信在遮蔽下,一定有着洪水般的数据在涌动,翻滚。
也许是整条尼加拉瓜大瀑布,也许是全长的亚马逊河。
顺着这丝气息流动的方向,最终与其他的数据流逐渐汇合,
最终进入那个数据海洋。
海洋里各种颜色的数据在相互吞噬着,撕咬着。
数据在其中翻滚,沸腾,迸发出巨大的能量光伏。
我再次深吸了一口气,从海洋中的支流顺流而上,
这周围的数据流向清晰了起来,一丝丝,或者一缕缕,
在建筑物,在地底萦绕着。
已经看似废旧的城区,数据的世界却如此生机勃勃,金光闪闪。
就是这里了,他说的没错。
”动手吧。“

瞥见三

“混蛋,不要说这种话了!”
他靠着墙,半躺在地上,血虽然好像止住了,但还是染红了外套。
“我们不会把你留在这儿的,队长!”
“队长!”
“队长和我们走吧!”
他看着一张张焦急的面孔,
急促的呼吸开始变弱。
“混账们,都给我走。。咳。。。”
她拨开了人群,冷冷的看着地上的他。
”你根本不是我们的队长。“
大家惊讶的望向她。
”你是我们的伙伴啊。“
她继续冷冷的说道。
”也许没有队长组织还会存在下去,“
她优雅的弯下腰,伸出了右手。
“但失去了伙伴,才是我们无法进去下去的原因啊。”

瞥见二

我摩挲着这古老的痕迹,
揣摩着那时候的人们到底有多么的匆忙。
「就是这里了」。
反复的抚慰着那段躁动的镌文,
如果他们知道匆忙的代价,
时光中也就会少了这段岁月。
匆忙的种族,也匆忙而去了。