zoom? or text-size
目前的浏览器,从 IE 系列(IE5 到即将出来的 IE7)到 Mozilla 家族(mozilla suite, firefox, Camino 等),都提供一个文字大小(Text Size)的选项。Mozilla 家族的浏览器可以无限放大/缩小字体(限制只取决于内存 :?),而 IE 系列只支持 5 个级别的选择,IE7 也不例外。
比较有意思的是,Opera 并没有文字大小的选项,只有一个Zoom(缩放)选项。而 IE7 也有一个Zoom选项,一开始我以为是 Text Size 的替代,没发现我错了,IE7 是两个功能都提供!
顾名思义,文字大小只是改变浏览器所呈现的文本字号而已,不会更改页面上的其它元素。而缩放则会改变浏览器主体(body)所呈现出来的元素(是不是所有我也不知道)。这不是一个好消息。现在浏览器所呈现的图像,绝大部分是像素(pixel)格式的,缩放会导致质量的降低。虽然如此,相比只改变文本大小,似乎这种方式给浏览着更好的观感,因为从按比例保持了原站的框架。但看到粗糙的图片我就满身不舒服,不知道诸位看官有何看法,欢迎留言探讨 :)。某种情度上,我只需要让文本放大,以适合我的视力范围,粗糙的图片会降低我的阅读欲。所以 IE7 两种方式都提供,不失为一种调和众口的好策略。
然而,比较恶心的是,如果定义字体大小使用绝对单位(px, pt 等)的话,IE 的文本大小功能会失效。所以,如果您想照顾一下 IE 用户(想不照顾都不行,90%强的占有率),请务必使用相对单位(em, 百分比等)。但是很少人使用相对单位,因为这会让他们的设计不可控制。遗憾的是这个问题并没有在当前发行的 IE7 中得到解决。
还有一个问题比较有趣。Mozilla 家族浏览器,版本 7 之前的 IE 系列浏览器,字体的缩放有一个快捷键:按住 CRTL,并滚动鼠标滚轮来改变文本大小。滚轮向前缩小文本,向后放大文本。而 Opera 和 IE7 则反其道而行,缩放方向与前述相反。
对,Opera 跟 IE7都把这个功能让给 Zoom了,对于 Opera 来说还好,因为它没有文字大小这个功能(谁知道未来有没有呢),而 IE7,却把该快捷键从原来的文本大小让给了缩放,而至今我也没有找出 IE7 改变文本大小的快捷键。
很混乱,对不?对于我这样的浏览器使用大户,这种混乱使学习成本大幅提升。
然后还有一个十分有意思的现象,如果不给 body 强行定宽度,只 margin/padding 留出距离的话,Opera 和 IE7 的 Zoom 是不一样的,Opera 不会改变 body 的宽度,而 IE7 则会。我也不知道谁对谁错。
最后,我做了一个兼容性还可以的东东,能够保持各种浏览器的观感(主要是 body 的宽度)相似(一致是不可能的)。大家可以帮忙使用各种浏览器测试一下:http://realazy.com/lab/zoom-ts/,尤其是有 Safari 的朋友,谢谢 :)
P.S. 如前所述,IE7 得使用 Text Size 来观看,Zoom 会加宽 body 的宽度,而 Opera 不会。