学习 DivCSS 网页布局的知识,可是 W3C validation 有时难以操作,但用它你可以查看由版面设计引起的差错。验证程序抛出大量差错和警告,说明你的 XHTML 尚未完善,可能无法在不同浏览器上保持一致功能。下面十个细微的失效问题难住了大批程序员,本文就告诉你如何解决。在本文开始前介绍一些使用 W3C 验证程序时需要注意的问题。
1、不要担心验证程序的警告:如果验证程序说发现 12 处错误以及 83 处警告,不要理它,继续进行下一步。
2、一次更正一个错误:按顺序进展工作,从上到下,一次修正一个错误。HTML 用浏览器从上到下浏览,这些错误也是按同样顺序显示。
3、每次修正代码后要刷新代码,使它们重新生效:一个小错误常常会引发之后整页的连串错误。因此如果操作不当,“ 修正错误 ” 也可能引发更多错误。每次修正后使代码重新生效,这样就可以确保完全解决问题。
知道了上面这些基本的异常情况,下面我们就来看看版面设计无效的几个原因。
一、div 标签未关闭
这是版面设计失效的最常见原因之一。当我们了解到这是多少精致的版块设计失效的罪魁祸首时,总会大吃一惊。开启的 div 标签是最普遍的版块设计失误之一,也是最难诊断的失误之一。验证程序有时会指向错误的开启 div 标签,诊断时就像大海捞针一样麻烦。
二、麻烦的 embed 标签
九十年代早期,Microsoft 和 Netscape 的浏览器开始能够辨认非标准的独有字体。遗憾的是这意味着 W3C 验证程序还不能识别某些关键 HTML 标签,如 “embed”,即使这些标签已经被广泛使用。如果确实希望得到严格的 DOCTYPE(文档类型)验证,就只能放弃嵌套。
如果同时想要生效的版面设计和嵌入式媒体,可以试试 Flash Satay 方法。
三、不当的 DOCTYPE 声明
不声明 DOCTYPE,或者在文件开始错误声明 DOCTYPE,也是一个常见错误。根据一般经验,Strict DOCTYPE 是大家追求的最高级验证。Strict validation 表明你的网页能够在所有浏览器上都得到最佳展示。关于 DTD 文档类型的声明,您可以参考 52CSS.com 的相关文章。
四、结尾斜线
如果你的网站不能验证,很有可能是在代码的某个地方漏写了结尾斜线。我们很容易忽略结尾斜线之类的东西,特别是在 image 标签等元素中。
在严格的 DOCTYPE 中这是无效的。要在 img 标签结尾处加上 “/” 以解决此问题。
五、Align 标签
如果 DOCTYPE 被设为 Transitional,你就会使用 “align” 标签,但如果要求更高一点希望得到 Strict 验证,你会看到很多错误。 Align 是另一个不可用于版面设计的标签。可以尝试用 “float” 或者 “text-align” 来代替 align 转换元素。
六、JavaScript
如果已经声明 Strict DOCTYPE,就需要在 JavaScript 中覆盖 CDATA 标签。验证程序的这一方面难倒了很多程序员,因为网站倾向于为广告和追踪脚本使用嵌入的 JavaScript。如果必须用到 JavaScript,可以在其前后加上如下标签:
七、图像需要 “alt” 属性
你可能还没有注意到,图像也是高级验证的潜在绊脚石。除了结尾斜线,高级验证也要求用 alt 标签来描述图像,如 alt= ”Scary vampire picture”。
搜索引擎也靠 alt 标签来识别网页上的图像,所以无论怎样加上 alt 标签总是好的。
八、未知实体数据
实体数据是又一个影响验证的易犯错误。我们可以考虑用适当的编码字符来代替 “&” 等符号。entire list 中列出在 XHTML 版块设计中可用的适当的编码字符实体数据。
九、不良嵌套
嵌套就是元素里又包括元素,我们容易混淆嵌套元素的顺序。例如在 div 标签前启动 strong 标签,但又先关闭 div 标签。这可能不会改变版块布局,但却会使你的版块设计失效。
十、缺少 “title” 标签
尽管这看上去是一个很明显的错误,很多程序员 (包括我自己) 还是经常会在 “head” 版块中遗漏 title 标签。当你看到 “missing a required sub-element of HEAD”(缺少 HEAD 的必要子元素)时,才会发现自己忘记添加 title 标签了。