客服
主页 > 新闻资讯 >
怎样做一个符合w3c规范的网页
作为网站技术开发人员而言,往往是站在自己的开发角度来实 施网站布署(读取数据及开发的方便性等等),而不是站在网站访问者与搜索引擎角度。因此大部分的网站在浏览方面不够直观或是方便,特别是现在w3c的规范,更是在大部分的网站开发人员脑里一片空白。何况百度 、google、msn、yahoo等专业搜索引擎更有自己的搜索规则及判断网页等级技术,所以网站要优化,优化的目的只有一个：符合标准,符合蜘蛛爬行的标准,更重要的是符合网站访问者浏览的方便及易用性。以下文章中，AB织梦模板网主要通过三个方面来讲述有关W3C!
什么是W3C标准
W3C其实就是World Wide Web Consortium,全球万维网联盟的简称。W3C的主要职责就是确定未来万维网的发展方向,并且制定相关的推荐(recommendation, 由于W3C是一个民间组织,没有约束性,因此只提供建议)。HTML4.01规范建议(HTML4.01 Specification Recommendation)就是由W3C所制定的。它还负责制定XML,MathML等其他网络语言规范。
怎样通过W3C标准的验证?
步骤方法如下：
1、图片的alt="" 属性必须每张图片都加上，而且对齐属性用CSS来定义。不加不能通过XHTML 1.0的验证。
2、每个文档必须加上DTD声明。
a) !DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
去掉后能通过验证，但有警告：No DOCTYPE found! Checking with default XHTML 1.0 Transitional Document Type.
3、RSS的XML通过时其中的域名地址必须与检测的地址一致，否则会报错。
4、标签的链接属性加上JAVASCRIPT事件时必须为#空链,不能为javascript:;或javascript:void(null);
5、同一个页面当中，同名的ID会产生冲突。所以以ID定义样式的必须改成类引用。
<div id="a1">111</div>
<div id="a1">222</div>
如果不用W3C来检测的话，在CSS设计里是允许这样做的。
那是程序的角度不能相同，CSS上是可以相同的!
之前就是相同的产生问题，后面就改成类引用了!
6、不可省略双引号或单引号。
a) 这个是指属性，标准是双引号~
单引号也能通过验证。
7、标签之间不可错位嵌套。
<div class="CaseDetaListSS">原文链接：<a href='/html/cases/cases_61.html'>官方网站</div></a>
这是不允许的。
8、所有的标签都使用小写。
9、FLASH的标签代码中不能含有,必须采用其它的方法实现。
10、所有的标签中含有的属性必须有值(官方的说法)。
11、标签必须配对完成,单标签必须以/关闭
12、JS和CSS外部引入文件必须加上类型定义。
13、所有的样式全部写在外部文件。用类名定义。在使用的地方引用。
14、页面上的一些特殊字符必须用HTML代码来标识.如“&”写成“&“
没通过W3C 标准验证的原因
每次修正代码后要刷新代码，使它们重新生效——一个小错误常常会引发之后整页的连串错误。因此如果操作不当，“修正错误”也可能引发更多错误。每次修正后使代码重新生效，这样就可以确保完全解决问题。
知道了上面这些基本的异常情况，下面discuz模板网就来看看版面设计无效的几个原因。
1、div 标签未关闭
这是版面设计失效的最常见原因之一。当我们了解到这是多少精致的版块设计失效的罪魁祸首时，总会大吃一惊。开启的div标签是最普遍的版块设计失误之一，也是最难诊断的失误之一。验证程序有时会指向错误的开启div标签，诊断时就像大海捞针一样麻烦。
2、麻烦的embed标签
九十年代早期，Microsoft和Netscape的浏览器开始能够辨认非标准的独有字体。遗憾的是这意味着W3C验证程序还不能识别某些关键HTML 标签，如“embed”，即使这些标签已经被广泛使用。如果确实希望得到严格的DOCTYPE(文档类型)验证，就只能放弃嵌套。
如果同时想要生效的版面设计和嵌入式媒体，可以试试Flash Satay方法。
3、不当的DOCTYPE声明
不声明DOCTYPE，或者在文件开始错误声明DOCTYPE，也是一个常见错误。根据一般经验，Strict DOCTYPE是大家追求的最高级验证。Strict validation表明你的网页能够在所有浏览器上都得到最佳展示。Strict 声明代码如下：
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4、结尾斜线
如果你的网站不能验证，很有可能是在代码的某个地方漏写了结尾斜线。我们很容易忽略结尾斜线之类的东西，特别是在image标签等元素中。例如：
在严格的DOCTYPE中这是无效的。要在img标签结尾处加上“/”以解决此问题。
<img src="" alt="">
5、Align标签
如果DOCTYPE被设为Transitional，你就会使用“align”标签，但如果要求更高一点希望得到Strict验证，你会看到很多错误。 Align是另一个不可用于版面设计的标签。可以尝试用“float”或者“text-align”来代替align转换元素。
6、JavaScript
如果已经声明Strict DOCTYPE，就需要在JavaScript中覆盖CDATA标签。验证程序的这一方面难倒了很多程序员，因为网站倾向于为广告和追踪脚本使用嵌入的 JavaScript。如果必须用到JavaScript，可以在其前后加上如下标签：
<script type="text/javascript">
/* <![CDATA[ */
// JavaScript here
};
/* ]]> */
</script>
7、图像需要“alt”属性
你可能还没有注意到，图像也是高级验证的潜在绊脚石。除了结尾斜线，高级验证也要求用alt标签来描述图像，如alt= ”Scary vampire picture”.
搜索引擎也靠alt标签来识别网页上的图像，所以无论怎样加上alt标签总是好的。
8、未知实体数据
实体数据是又一个影响验证的易犯错误。我们可以考虑用适当的编码字符来代替“&”等符号。entire list中列出在XHTML版块设计中可用的适当的编码字符实体数据。
9、不良嵌套
嵌套就是元素里又包括元素，如下所示：
<div><strong>Sweet!</strong></div>
我们容易混淆嵌套元素的顺序。例如在div标签前启动strong标签，但又先关闭div标签。这可能不会改变版块布局，但却会使你的版块设计失效。
10、缺少“title”标签
尽管这看上去是一个很明显的错误，很多程序员(包括我自己)还是经常会在“head”版块中遗漏title标签。当你看到“missing a required sub-element of HEAD”(缺少HEAD的必要子元素)时，才会发现自己忘记添加title标签了。