英文版IE6下中文字体变大之谜

添加评论 2010年7月8日

有个客户的站点上,安装了Joomla的繁体中文语言包,并将繁体中文设置为默认语言后,客户报告说,浏览器页面上所有的文字都突然变大了好多。接到报告后,我们想办法重现问题。然而不巧的是,使用中文版的IE6、IE7IE8、Firefox3.6,都看不出字体大小的明显变化。最后突然发现客户的屏幕截图当中的IE浏览器是英文的,于是找了个英文版的IE6浏览器。果然,问题出现了!那么,到底是由于什么因素导致的呢?

通过分析,发现我们做的唯一改变就是语言的转换,尝试把语言换回默认的英文之后,问题没了。但是我们必须要站点的语言是繁体中文的,得找出问题的根源。最后,通过比较不同语言下的xhtml输出,发现了差别。

改变语言之前: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-gb" lang="en-gb" >

改变语言之后: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw" lang="zh-tw" >

尝试后发现,导致IE6字体突然变大的原因,是lang=”zh-tw”这个属性,根据标准,这个属性用于向浏览器提示内容的语言,让浏览器选择合适的呈现方式。

一般情况下,对于zh-tw的语言设置,各种浏览器呈现出来的文字都会比en-gb时略宽。然后在英文版的IE6之下,当font-size为13px的时候,zh-tw语言下的文字将会明显变大……至少增大2px,font-size为其他值时这种变化却不明显。有趣的是,把语言设置为zh-cn却没有这问题。

最后,通过修改模板,输出lang=”zh-hk”替代zh-tw来解决问题

IE6浏览器真是个怪物,可惜这怪物生命力似乎很顽强。

  1. 2010年7月9日 at 05:04 | #1
    hanmiao

    IE6真是个怪物,好在我已经不用它了,现在用得最多的是Firefox

  2. 2010年7月9日 at 14:49 | #2
    somneg

    IE6浏览器在某些方面表现的比这些现代的浏览器更加的优秀,比如IE6浏览器启动的速度就比Firefox强很多,打开IE6只要2秒左右,而打开Firefox最少时在10秒以上!

  3. 2010年11月30日 at 16:19 | #3
    an9

    ie6还是很有市场的,比如网银系统。

  4. 2012年1月10日 at 16:36 | #4
    ling

    貌似这个方法不管用哦。。。。之前没有设置属性,现在加上了,也不管用,没用。

  1. 还没有 trackbacks
订阅评论