您的位置: 首页 > 技术文档 > 网页制作 > Web标准发展建议与实例
表单验证 Validator v1.05 回到列表 闪客帝国网站重构访谈
 Web标准发展建议与实例

作者:x5stuido 时间: 2004-11-22 文档类型:原创 来自:蓝色理想

第 1 页 简介/历史/Web标准
第 2 页 为什么使用Web标准以及校验
第 3 页 结构和表现
第 4 页 了解基础变化
第 5 页 (X)HTML [1]
第 6 页 (X)HTML [2]
第 7 页 CSS [1]
第 8 页 CSS [2]
第 9 页 CSS [3]
第 10 页 可访问性
第 11 页 URLs(页面地址)
第 12 页 参考资料
第 13 页 专业词汇

5. (X)HTML

使用HTML4.01是可以制作出现代的、结构化的、兼容标准的站点的。然而,为了做到向整洁的语义化的代码的转变,并且为XML和未来的其他标记语言做好准备,建议大家使用XHTML1.0 Strict来创建新的站点,本文中的例子用的就是XHTML1.0 Strict。

XHTML 1.0 是以XML 1.0对HTML 4的改进,它的发展,以用来代替HTML。XHTML 1.0 Strict(这是我一直所倡导的)不支持表现类的标记(HTML 4.01其实也不支持,但是现在我们讨论的是XHTML)。正因为此,XHTML1.0 Strict 就促使了表现与结构的分离。

XHTML 1.1(XHTML的最新版)从技术上说,使用起来有一些复杂。因为规定中声明XHTML 1.1的文档应当使用MIME类型 application/xhtml+xml, 不应当被看作text/html。 并不是严格的禁止使用text/html, 只是不建议使用。 另外一方面,XHTML 1.0 (应当使用 application/xhtml+xml)同样可以使用MIME类型 text/html, 如果它是可兼容的HTML。W3C的注解XHTML Media Types 中包括了MIME类型(W3C推荐使用的类型)的概要。

不幸的是,一些老的浏览器包括IE不能识别MIME类型 application/xhtml+xml, 并且会终止显示源代码,甚至会干脆拒绝显示整个文档。

如果你想使用application/xhtml+xml, 你应当让服务器检验一下读取文档的浏览器是否支持MIME类型,如果能,就使用绻荒埽褪褂胻ext/html。

如果你使用的是PHP作为服务器端的脚本,那么下面的这段脚本能够让你的文档针对不同的浏览器使用不同的MIME类型。

<?php if (stristr($_SERVER[HTTP_ACCEPT], "application/xhtml+xml") || stristr($_SERVER["HTTP_USER_AGENT"],"W3C_Validator"))
{ header("Content-Type: application/xhtml+xml; charset=iso-8859-1");
header("Vary: Accept");
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
} else { header("Content-Type: text/html; charset=iso-8859-1");
header("Vary: Accept"); } ?>

这个脚本是检测是否用户代理发送了一个包含“application/xhtml+xml”的Accept HTTP头,或者如果用户代理是W3C HTML校验器(不会发送合适的Accept HTTP头的,但是它依然支持 application/xhtml+xml)。如果上面检测的回答是肯定的,文本将被看作 application/xhtml+xml。那些浏览器也会收到一个XML的声明。对于另外的一些浏览器(包括IE的是所有版本),文档都将被看做 text/html。在文档中也没有添加额外的XML声明,因为如果添加的话,会使IE/WIN转化到我们所不希望的Quirks模式。

在Content-Type头部之后,一个被更改过的头部,将被发送到中间的缓存中(比如一些代理服务器),用来告诉他们文档的内容类型随着客户端对文档的请求而改变。

如果想了解更多的PHP检测脚本, 请参考Serving up XHTML with the correct MIME type. 那个脚本对请求客户端的q-rating(它声明了更够很好的支持某种MIME类型)进行了考虑,在发送text/html 文档给不支持 application/xhtml+xml的客户端之前,把XHTML转化成HTML 4。

下面的是一个相似的脚本,针对ASP(VBSscript):

<% If InStr(Request.ServerVariables("HTTP_ACCEPT"), "application/xhtml+xml") > 0 Or InStr(Request.ServerVariables("HTTP_USER_AGENT"), "W3C_Validator") > 0 Then Response.ContentType = "application/xhtml+xml" Response.Write("<?xml version=""1.0"" encoding=""iso-8859-1""?>" & VBCrLf); Else Response.ContentType = "text/html" End If Response.Charset = "iso-8859-1" %>

值得注意的是,当一个文档的MIME type是application/xhtml+xml时,一些浏览器(像Mozilla)是不会显示包含错误的文档的。这在开发过程中是一件好事,但是对于那些刚刚更新完站点且不是XHTML专家的人来说,就会出现一些问题,除非您能确保所有的代码都是规范的。如果出现了这种问题,您可以考虑使用HTML 4.01 Strict来代替XHTML。

下面列出了一些在使用XHTML 1.0 Strict中需要特别注意的地方:

  • 永远使用小写字母,让引号伴随者属性: 所有元素和属性的名字都必须使用小写,所有属性值必须使用双引号。

    错误: <A HREF="index.html" CLASS=internal>
    正确: <a href="index.html" class="internal">

  • 关闭所有的元素:在HTML中一些元素没有必要被关闭。当下一个元素开始的时候,上一个元素就自动被关闭。XHTML中是不允许这样的。所有元素都必须被关闭,即使其中没有内容(如 <img>)

    错误: <li>Item 1
    正确: <li>Item 1</li>

    错误: <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    正确: <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>

    错误: <br>
    正确: <br />

    错误: <img src="image.jpg" alt="">
    正确: <img src="image.jpg" alt="" />

  • 属性不能被缩减: 在HTML里,一些属性可以被缩减。而XHTML则不允许这样做。

    错误: <input type="checkbox" id="checkbox1" name="checkbox1" checked>
    正确: <input type="checkbox" id="checkbox1" name="checkbox1" checked="checked" />

  • 不要使用被排斥的元素: 一些元素和属性在HTML 4.01 Transitional和XHTML 1.0 Transitional是被允许的,而在XHTML 1.0 Strict下则不被支持(还有in HTML 4.01 Strict)。比如<font>、<center>、 alink、align、width、 height (对于某些元素)和 background。

出处:蓝色理想
责任编辑:红色黑客

上一页 了解基础变化 下一页 (X)HTML [2]

◎进入论坛网页制作网站综合版块参加讨论

作者文章
Web标准发展建议与实例
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:5/131个记录/页 转到 页 共13个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2