这篇文章主要想谈谈在网页制作中几个比较容易被忽视的问题,算不上什么高深的教程,只是自己平时工作学习中所遇到的问题积累,写下来一是可以给初学者提个醒,二来也是帮自己做个笔录。
1、让你想当然,给你点颜色看看
这个问题其实被很多人忽略,小到个人站点,大到门户网站都有可能犯这个错误。不信想想看,如果你所做的网站背景是白色的,那么你还会记得在 CSS 里写下 Background-color:#ffffff 这句代码吗?我敢打赌,大部分人不会!并不是因为大家偷懒,而是这个举手之劳被彻底忽略了,为什么?因为我们所用的 Windows 操作系统在大多数的情况下,运行在其上的各种软件的默认背景色是白色,这其中就包括 IE 浏览器,所以在网站背景是白色的条件下,许多的网页制作者就想当然的忽略了关于背景色的设置,反正大家都是白色,不设的话也看不出来。但是不要忘记了,Windows 从 XP 开始支持系统主题的更换,有很多第三方的主题会更改系统默认的设置,其中就包括背景色的设置,如果没有强制设定页面中的背景色,那么页面就会以当前浏览器的背景色来显示内容,其结果就是网站美观性被大大的降低,拿大家都熟悉的网易来举例,下面的截图是在我机子上浏览时的样子,由于前不久换了一套 Vista 的主题风格,所以浏览器的背景色变成了浅灰色。
仔细看看网易的 Logo ,看出来吗?对,那个 Logo 的背景是白色的,但旁边的背景色却是灰色的,换句话说就是网易整个页面的背景原定就是白色的,这在浏览器背景为白色的前提下是看不出什么来的,但是像现在这样就“漏馅”了。不光是网易 ,许多的门户站都是这样,具体我就不去举例了,可见关于 Background-color 设定的重要性。所以,不论你的网站是什么样的背景色,请一点记住把它设定好,哪怕它是白色!
2、立正!向左~~~看齐
大家都知道 Table 的默认水平对齐方式(align)为左对齐,设 align="left" 和不设其效果是一样的,于是很多人不去设置这个属性,我以前也是如此。但是在某些特殊的情况下,IE 会把默认的左对齐理解为居中对齐,从而导致页面的排版出现问题,虽然说具体是什么情况下会出问题连我自己都说不清楚,但是这种情况绝对存在,所以大家在做页面的时候一定要习惯性的设置表格的 align 属性,不要偷懒跳过这步,对页面的表现来说,这所谓的多此一举绝对有益无害。
3、单元格宽度-隐形杀手
不知你有没有遇见过这种情况,假设当你给一个单元格的 align 设置了左对齐后,却发现放在单元格中的文字并没有应用该属性的效果,反而继续是居中显示,查看文字两端也并没有发现任何垃圾代码包含其中,可是无论如何都改变不了文字的位置。郁闷吗?反正当时我是很郁闷,直到后来,我才发现原来是单元格的 Width 属性在作怪,将其删除或重新设置后问题得到解决,所以,当你也遇到同样的问题时,不妨检查一下出问题单元格的 Width 设置,相信你会找到解决的方法。
4、打死滚动条都不消失
有时为了一些个性化的需要,有些人喜欢将浏览器的滚动条隐藏掉,这个效果做起来很容易,但是有时会发现明明代码一点问题没有,而且查看用的浏览器也不是非 IE 内核型的,但可恶的滚动条就是不消失!而且这个问题很多都出现在用 DW 等可视化编辑软件制作出的网页上。那原因是什么呢?其实原因就在该页面的头部代码里,查看该页面的源代码,你会发现在最上边有类似这样的两句代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
这两句代码叫做 DOCTYPE 声明,是 Document Type(文档类型)的简写,用来说明你用的 XHTML 或者 HTML 是什么版本。简单点说这两句代码是制作标准化页面所必不可少的关键组成部分,浏览器就是根据你定义的文档类型来解释你页面的标识,并展现出来的。换句话说,如果你定义了一个错误的 DOCTYPE,那么你的标识和 CSS 都不会生效。而定义滚动条显示与否的 overflow、overflow-x、overflow-y 这三个属性恰恰没有被网页标准所采纳,所以如果你的页面上方定义过 DOCTYPE ,那么这三个属性便是无效代码了,解决方法就是删除头部的 DOCTYPE 声明,虽然在标准日益普及的今天不推荐这么做。
5、都是注释惹的祸
为代码写注释是个好习惯,但是有时也会出现一些问题,例如为 CSS 写中文注释。
如果你为自己定义的 CSS 写了中文注释,那么在一些特殊情况下(例如服务器端的支持,页面所用的程序类型等)会导致部分代码无故失效,这种情况我遇见好几回了,所以在技术上没解决这个问题之前,还是不要为 CSS 写注释的好,养成良好的命名习惯足以让其它人看懂自己代码的意义,即使一定要写,也请用英文写吧...什么?拼音!!!拜托,你用拼音试试看,保证一个星期后连你自己都不明白那写的是什么。
6、神啊,发光吧~~~
这个问题有些滥竽充数的嫌疑,只是有很多人问起过,所以也一并放上来。是关于 CSS 的 Glow Filters ,这个滤镜的效果是对环绕对象内容边缘制作发光效果,也有人称描边效果,多被用在文字的表现上,但是许多人在运用了该滤镜后发现并没有出现想要的效果,究其原因多半是由于把这个滤镜直接运用到了文字上,要知道该滤镜对文字是没有效果的,那为什么还能制作出发光文字呢?那是因为一定要把它运用在放置文字的容器上,例如 Table 。所以,如果没有效果的话,就检查一下是不是用错地方了。
该滤镜的另外一个问题是,虽然发光效果是有了,但是感觉文字上的那圈光晕好像是被裁了一样,少了一块似的。这是由于所放置文字的容器高度低于该滤镜的发光范围所至,解决方法有三种:
1、缩小 Font-Size
2、增加 Height 值高度
3、降低 Strength 值的大小
7、思考中...
其实这些问题都不是什么了不起的大问题,但往往越是小问题才越容易被人忽略,希望上面这些经验教训对你能有所帮助,哪怕有一个人从中收益就不枉我罗哩罗嗦这么半天了。