——网页制作中最不易发现的常见错误——
字体篇
在图文混排,版面较复杂的页面中使用CSS字体时用pt字义文字大小。
页面中的图像一般都是使用固定像素值定义大小的,此时它周围的文字假如使用磅为单位,则有可能在其它磅与像素映射值不同的电脑上浏览时产生不能预料的版面错误。这种错误不仅会发生在不同操作系统之间,同样在Windows操作系统中,字体的映射比例也是可以由用户定义的。相同磅值的字在大字体视窗下占有的像素面积显然要大于小字体的视窗环境。避免此错误的方法是,在图文混排复杂的页面中尽量避免使用pt这样存在逻辑映射差异的单位。
在页面中随意地用一些px值定义CSS字体大小
由于IE5增加对Web光滑字体的支持,越来越多的页面制作者随心地选择一些字体,而不顾它们在老版本浏览器中显示的效果。事实上,9px宋体在IE4中可以显示得非常光洁,10px宋休反而会显得有些不规整。而9px宋体在NN下看起来也与IE中的会完全不同。避免这一问题的方法是尽可能多地使用不同的浏览器检验页面中的字体,有时选择一些带小数的字体会得到有意想不到的兼容性。
表格篇
在空表元中使用bgcolor与background属性
表元在页面的熟练制作者手中是一个强大的工具,可以利用它完成竖线,做背景填充等工作。但是许多制作者忽略了一件事,就是空的表元在NN中不被渲染,也就是意味着如果在td标志中指定了bgcolor或者是background属性时,请别忘记在td中多打一个全角的空格。如果打算画一条细直线而不想加入一个过宽的空格时,那么可以用img标志插入任意一副本页已经用到的,但又尽可能小的图片,并把width与height都定义为0就行了。
在表格的首行使用colspan属性或在首列使用rowspan属性
表格功能强大,高手可以轻松地手工制作一大块分割复杂的表格,而新手也可以借助Dreamweaver这样的工具轻松制作出交错不清的大表。但制作者往往忽视了浏览器的“感受”,它们往往不能及时领悟创作者的意图,而把表格显示得奇形怪状。纵然IE有比较强的智慧力,可以在渲染显示再对表元进行调整,但起初怪异的画面也许已经让您的浏览者望而却步了。解决的方法是尽量在首行把每一列的宽度定义清楚,在首列中把每一行的高度定义清楚。如果出现了本节标题中的情况,那么建议您增加一个空行或空列,如果事先指定了border,cellspacing,cellpadding三者皆为“0”的话,它们并不会占任何地方。
脚本篇
以为天下只有一种浏览器
许多脚本高手在IE浏览器中调试完Jscript后就高兴地将它们发布了。他们忘了这个世界上还有一种具有一定市场占有率的浏览器叫做NN,当然还有Opera等很多很多市场份额更小的浏览器。即使您不能够写一种适用于任何平台的脚本,也应当在运行脚本之前检测一下浏览器的版本。检验浏览器的方法有许多,我建议的语句是:if(isNaN(window.closed))
alert("The browser's version is invalid");IsNN = isNaN(window.event);第一句是检验浏览器版本是否是IE4或NN4以上的,第二句是判别浏览器是否为NN。这样就基本上可以满足大多数脚本的需要了。
在href属性后加“#"来激活Javascript代码
如果说99%有人会反对的话,那么90%以上的高手们都会犯这个错误。我无数次地看到有人在A标志中写
href="当前页面#" onclick="一些代码" 这样的代码。这些代码如果放在页面的顶层,那么完全没有问题。如果这是一个有可能滚动的页面,而它的位置又恰好处于页面的下方,那么很不幸,这样的代码会让NN的使用者感到非常奇怪,为什么一点之后页面就滚到页首去了。事实上,滚到页首是正当的,倒是我一直奇怪IE为什么不会滚到页首,因为some.html#的意思就是应当指向页首的。正当的方法有两种,一是直接在href属性中指定"javascript:函数名",二是在当前给A标志取名,比如指定以下属性:href=some.htm#xxx
onclick="somecode" name="xxx"。每一种方法还要注意,如果当前函数是有返回值的,那么应当再写一个没有返回值的函数来进行封装,否则浏览器会直接把返回值显示出来。
:-)
本文作者:【董梁 】