写了很长时间的 CSS+DIV ,也用这个做了很多的项目,对这项技术算是有一定的了解吧,但是在做了这么多的项目中却重来没有考虑过W3C的标准,最近做了一个项目客户突然要求我要遵守W3C的规则来做这个项目,当时我就傻眼了,平时都有听说过W3C标准,但W3C标准倒底是什么却没有真正的去了解过实践过,这次却让我深刻的体会到了。在经过对自己代码的测试和在网上的一些资料的查找总结出几个常见W3C标准验证失败原因:

1、div标签未关闭

这是设计失效的最常见的原因之一。调查显示,开启的div标签是最普遍的版块设计失误之一,也是最难诊断的失误之一。这种错误在初学者中出现的比较多,但写的多了就不会太容易出错。

2、麻烦的embed标签

九十年代早期,Microsoft和Netscape的浏览器开始能够辨认非标准的独有字体。遗憾的是这意味着W3C验证程序还不能识别某些关键HTML 标签,如“embed”,即使这些标签已经被广泛使用。如果确实希望得到严格的DOCTYPE(文档类型)验证,就只能放弃嵌套。

如果同时想要生效的版面设计和嵌入式媒体,可以试试Flash Satay方法。这种错误一般在设计中出现在不是很多,但在后台开发中对这些的要求是非常高的。

3、不当的DOCTYPE声明

不声明DOCTYPE,或者在文件开始错误声明DOCTYPE,也是一个常见错误。根据一般经验,Strict DOCTYPE是大家追求的最高级验证。Strict validation表明你的网页能够在所有浏览器上都得到最佳展示。

4、结尾斜线

如果你的网站不能验证,很有可能是在代码的某个地方漏写了结尾斜线。我们很容易忽略结尾斜线之类的东西,特别是在image标签等元素中。例如:
在严格的DOCTYPE中这是无效的。要在img标签结尾处加上“/”以解决此问题。

5、Align标签

如果DOCTYPE被设为Transitional,你就会使用“align”标签,但如果要求更高一点希望得到Strict验证,你会看到很多错误。 Align是另一个不可用于版面设计的标签。可以尝试用“float”或者“text-align”来代替align转换元素

6、JavaScript

如果已经声明Strict DOCTYPE,就需要在JavaScript中覆盖CDATA标签。验证程序的这一方面难倒了很多程序员,因为网站倾向于为广告和追踪脚本使用嵌入的JavaScript。

7、图像需要“alt”属性

你可能还没有注意到,图像也是高级验证的潜在绊脚石。除了结尾斜线,高级验证也要求用alt标签来描述图像,如alt= ”Scary vampirepicture”。搜索引擎也靠alt标签来识别网页上的图像,所以无论怎样加上alt标签总是好的

8、未知实体数据

实体数据是又一个影响验证的易犯错误。我们可以考虑用适当的编码字符来代替“&”等符号。entire list中列出在XHTML版块设计中可用的适当的编码字符实体数据。

9、不良嵌套

嵌套就是元素里又包括元素我们容易混淆嵌套元素的顺序。例如在div标签前启动strong标签,但又先关闭div标签。这可能不会改变版块布局,但却会使你的版块设计失效。

10、缺少“title”标签

尽管这看上去是一个很明显的错误,很多程序员(包括我自己)还是经常会在“head”版块中遗漏title标签。当你看到“missing arequired sub-element of HEAD”(缺少HEAD的必要子元素)时,才会发现自己忘记添加title标签了。

11、所有的标签使用小写

12、所有卷标内之属性都要有值且不可省略双引号或单引号,若没有属性值就必需重复属性作为值如:<a href=”index.htm”>连结</a> <frame noresize=”noresize”>

13、所有标签必须成对, 若非成对需加上/在最后

14、一个网页最少要包含的标签

<html>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=big5″ />

<title>标题</title>

</head>

<body>

内容

</body>

</html>

说明:通常中文网页以big5编码, 需加上以下这行于<head>与</head>之间:

<meta http-equiv=”Content-Type” content=”text/html; charset=big5″ />

15、若要显示【<】【>】【&】的话, 需以其它值输入

例如要显示< >于网页中的话, 需填入: &lt; &gt;

16、卷标顺序不可错乱

错误:<b><p>文字</b></p>

正确:<b><p>文字</p></b>

17、在做一些onmousover 的时候我习惯用a这个标签,用起来方便做起来也实用。通常的做法是在a里面嵌套一个div或是多个div来实现它的效果。但是这种做法却不符合W3C的标准。

18、同一个id选择器不可重复使用一个网页中id=”xx”同一个选择器不能重复使用,若需要重复请class=”xx”

19、在ul、li 中嵌套像span之类的标签,也不能通过W3C标准。

20、在from中,如果在没有手动去写一个select 或input,或其它的标签,而是在菜单栏中去添加,通常会出现一个ID,这时候如果 你的表单很多的话,就会出现很多个ID,而这时候这个ID就会重复,所以在这个地方要改一下ID的命名,或是去掉这个ID。

总结了这么些,希望对大家也对自己有所帮助!

Random Posts

Loading…