环境: ie6 (window sp3) ie7,8,9 firefox3.6, chrome10,opera 10.62 (window7)
本文先列举出几种常见的字体的显示问题以及优点,然后再列举几个web字体的最佳实践,一一作一分析。
1) Tahoma&& Arial字体比较
(1)字体下划线问题:Tahoma在ie6下的li元素里面显示很好,其他的所有浏览器中,下划线都会粘连中文文字,英文问题没有粘连;但是Arial字体除了ie6,firefox3.6 ,其他浏览器都是下划线粘贴着文字。
(2)13px中文问题:ie6 和firefox3.6 显示很难看,用的是14号字体,其他浏览器都用12px字体显示的(Arial字体比Tahoma字体好看点);
(3) 中英文混排问题:同一行中出现了中文和英文,如果设置了vertical-align属性,会出现高低不齐的现象。ie7出现了错位。zoom:1可以解决一部分问题。
(4)设置Tahoma字体后可以使表单元素和label对齐(比如radio,check ,text,select和相应的文本对齐,同时设置两者 vertical-align:middle )
2)宋体的问题(又名SimSun),unicode 编码 \5b8b\4f53
(1) Opera 下,只认 "宋体", 不认 SimSun
eg:font: 12px arial; 此时,Opera 默认中文字体就是宋体,font: 12px sans-serif; 此时,Opera 默认中文字体就是宋体。
font: 12px tahoma,arial,simsun,sans-serif; 对于'宋体'来说,如果后面已经没有中文字体,用 simsun 还是 ok 的。
3)helvetica的问题
(1)找不到字体的时候,使用默认字体。
(2)如果用 font: 12px helvetica2,tahoma; 定义字体时,会调用排在第二的 tahoma.
(3) font: 12px xxx,tahoma; 一切正常
4)关于行高
(1)font: 12px/1 \5b8b\4f53; 行高为 1 时,IE6-7 下,高度不够时,会导致中文上下显示不全。
(2)font: 12px/1.5 \5b8b\4f53; 行高为 1.5 时,一切正常。 文章中推荐使用1.5
5)中文编码对字体的影响
(1)如果没有设置宋体,在非中文操作系统中很难看。
(2)可以通过不设置sans-serif 来避免上面的问题。
6)关于sans-serif字体
就是无衬线字体,是一种通用字体族。
font-family最后加上sans-serif,也是为了保证能够调用这个字体族里面的字体,因为大多数计算机里都有这种字体。
7)字体继承方面:在IE里,所有的表单元素都不继承body的字体属性,需要单独设置 。
总结:
方案一:body {font-family: Arial, sans-serif; }该方案能解决在ie6下的问题,但是该方案对表单对齐没有优势。
方案二:body {font-family: Tahoma, sans-serif; } 该方案不能很好的解决在ie6下的下划线问题,此外在ie6下对于13px的字体也不能很好的支持。
方案三: body {font: 12px/1.5 tahoma, arial, simsun, sans-serif;} 比较tahoma 和arial字体,arial在ie6下使用较少。顾推荐。
方案四:body {font: 12px/1.5 tahoma, arial, \5b8b\4f53;} 使用unicode字符,支持各种格式。
此外不使用sans-serif,在非中文操作系统的不会出现很难看。我推荐方案四。