将em作为字体大小单位带来的问题

ZDNet软件频道 时间:2005-03-22 作者:builder.com |  我要评论()
本文关键词:
在网页中设定字体大小的方法有很多种,如使用small 或large关键字,像素、点等固定度量单位,抑或是em或百分比等相对度量单位。

在网页中设定字体大小的方法有很多种,如使用small 或large关键字,像素、点等固定度量单位,抑或是em或百分比等相对度量单位。然而,每一种字体大小规范都各有利弊。关键字法方便易用,但缺乏灵活性和精确性。固定度量单位虽然精确,但当访问者要按自身喜好调整文本大小时,又会创造可达性问题。相对度量方法很好地解决了可达性问题,但仍有其他问题。

理论上的工作方式
    相对度量单位可以将字体大小指定为一个参考字体大小地相对放大或缩小量。百分比大小方式将字体大小值表示为字符框高度(从大写字母顶部到下行字母的底部)的百分比。

Em单位是在排版习惯中产生的,定义1em等于参考字体中大写字母的高度。为了与其他度量方式相一致,CSS将em重新定义为字符框的高度。由em定义的字体大小一般为参考字体的小数倍或整数倍。因此,2em为2倍参考字体大小,0.75em为参考字体大小的75%。

理论上,用相对度量单位指定字体大小对Web建设者和访问者都有好处。通过改变标准的参考字体大小来调整全局的字体大小,可免去对每一文本类型大小进行数量操作的麻烦。

当参考字体大小发生改变时,所有的字体大小都会成比例的发生改变。这就意味着,Web建设者只需改变主体标签中的字体大小即可实现对整个网页中字体大小的调整。同样地,访问者只需改变浏览器的字体大小设置,即可在不丢失任何信息的前提下重新调整浏览器视窗中文本的大小。

实际应用中的问题
    不幸的是,理论与实际往往是脱节的。使用相对度量单位来指定字节大小的最大问题是缺乏一致的规定参考字体大小的标准。假定在96像素/英寸的屏幕分辨率下,基于Windows浏览器的传统的缺省字体大小为16个像素。在Macs平台下,屏幕分辨率为72像素/英寸,缺省字体大小为12个像素。

虽然Windows缺省的字体大小已成为官方的建议标准,但很多固执的Mac用户(包括许多Web建设者)还坚持使用传统的Mac缺省设置。而这些设置却导致“正常”文本大小发生扭曲。虽然这种问题会出现在所有的字体大小度量方式中,但在相对度量单位方式中尤为明显,因为基本参考字体的变化会被放大,即小字体的文本变得很小,大字体的文本变得更大。

相对字体大小的另一个主要问题是,并不是所有的字体大小计算都必须基于浏览器的缺省文本大小或者是在主题标签中指定的字体大小。事实上,相对字体大小的计算是基于父元素的字体大小,元素之间层层嵌套,这就使问题变得更加复杂。例如,对于在单元格、表格、div中的一段文本,如果在每一级都规定了自己的相对字体大小规则,那么相对度量方式就会产生复合效应。

当在嵌套的元素中使用相对字体大小时,复合效应就会造成混乱和困难。更糟的是,不同的浏览器间并没有一个统一的标准来定义如何指定一个给定元素的父元素,以及在相对字体大小计算中哪一个才是参考字体。Netscape 4.x的问题最多,其他的浏览器在使用相对文本大小时也时常发生问题。

难以达成的目的
    相对字体大小方式没能实现用户可达性和Web设计灵活性这两个目的。为了成功使用相对字体大小方式,需要仔细地规划网页设计和CSS样式,从而避免潜在的元素嵌套问体。你可以尝试这么做,但会严重限制设计上的选择。或者,你可以采用关键字和绝对度量单位方式。

Michael Meadhra在网络发展初期便开始从事在该领域的研究,他出版的著作已达数十本。



责任编辑:李宁

欢迎评论或投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134