《HTML5和CSS3快速参考》——2.2 XHTML5
本节书摘来自异步社区《HTML5和CSS3快速参考》一书中的第2章,第2.2节,作者: 【美】Sergey Mavrody 更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.2 XHTML5支持多种语言的HTML文档
在多语言环境下,HTML文档既是一份有效的HTML文档,也是一份有效的XHTML文档。
!--HTML4, HTML5 syntax-- input disabled input disabled=disabled !--XHTML 1.0 syntax-- input disabled=“disabled” / !--HTML4, HTML5, XHTML 1.0 conforming Polyglot syntax-- input disabled=“disabled” /
XHTML5中的定义操作
一份多语言版的HTML5代码基本上等同于一份XHTML文档(只要提供相应的XML MIME类型[application/xhtml+xml]即可)。总而言之,在多语言环境的HTML5文档中:
应声明HTML5 DOCTYPE/namespace。尽管HTML5已经不再需要进行DTD(Document Type Definition)了(因为其格式已经不再基于SGML了),但对于DOCTYPE,我们依然得保留一定的向后兼容性。
应具有更良好的XHTML语法。
尽管多语言版的HTML文档同时提供了HTML和XHTML两种服务,但其实际运作仍需取决于浏览器的支持以及其自身的MIME类型。单纯就理论而言,一份支持多语言的HTML5代码基本就等同于一份XHTML5文档(只要它声明了XML MIME类型:application/xhtml+xml)。总体上,对于XHTML5文档而言:
如果默认编码是UTF-8的话,其XML声明( ?xml version=”1.0” encoding=”UTF-8”? )就不是必须的。 其HTML DOCTYPE,即声明也是可选的。但它在多语言版的HTML或XHTML文档中均可使用。 应具有更良好的XHTML语法。 应声明其XML MIME类型:application/xhtml+xml。此MIME声明在源代码中是不可见的,但它在配置浏览器处理相关HTTP头Content-Type信息时有着非常重要的作用。尽管XML MIME类型还不为IE浏览器的当前版本所支持,但该浏览器依然是可以解析XHTML文档的。 XHTML的默认命名空间为 xmlns=” http://www.w3.org/1999/xhtml” 。另外,文档还支持某些辅助命名空间,如SVG、MathML、Xlink等。对我来说,这些是测试所需的,但如果你的文档中不需要用到这些命名空间,那么使用XHTML就有些杀鸡用牛刀的感觉了。当然,无论你选择的是HTML还是XHTML,本质上还是其媒体类型所决定的。最终,一份基本的HTML5文档看上去应该是这个样子:
在这里,XML声明 ?xml verstion="1.0" encoding="UTF-8" ? 并不是必须的。只要我们的默认编码是UTF-8,XHTML验证器不会在意它被忽略。
但是,我们还是强烈建议你在服务器端用HTTP Context-Type头信息来配置文档的编码,否则字符编码可能就会由每个文档自身的某一部分来决定(meta标签:)。
而这种编码声明本身就需要在一份多语言版的文档中进行。因此,如果该文档要同时适用于HTML和XHTML两种服务,编码也就默认为UTF-8。
!DOCTYPE html html xmlns=“http://www.w3.org/1999/xhtml” head title /title meta charset=“UTF-8” / /head body svg xmlns=“http://www.w3.org/2000/svg” rect stroke=“black” fill=”blue” x=“45px” y=“45px” width=“200px”
另外,我们还可以通过Total Validator工具(包括Firefox插件版和桌面版)对当前用户选中的项目进行XHTML5规则验证。
height=“100px” stroke-width=“2”/ /svg /body /html
XHTML5的主要作用是对HTML5进行扩展,使其能运用SVG、MathML这类基于XML的技术。尽管HTML5规则已经支持了SVG和MathML这些内联技术,但目前浏览器对它们的实际支持是相当有限的。事实上,这项技术的缺点也正是它在IE上缺少足够的支持,以及其在代码要求和错误处理方面也更为烦琐。因此除非我们真的需要这些扩展,否则HTML5就已经足够了。
归根结底,HTML5与XHTML5之间的选择实际上已经落在了MIME/content类型上面,我们对于文档类型的决定已经和XHTML1 vs. HTML4时代不一样了,XHTML5 vs. HTML5时代选择本质上将取决于MIME类型,而不是DOCTYPE。
好程序员web前端培训分享值得参考的css理论:OOCSS、SMACSS与BEM 好程序员web前端培训分享值得参考的css理论:OOCSS、SMACSS与BEM最近在The Sass Way里看到了Modular CSS typography一文,发现文章在开头部分就提到了OOCSS、 SMACSS、 BEM、这3个词。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- 移动端HTML5实现打电话,发短信,发邮件,文件上传
- HTML5 / CSS3 – NAVIGATION自我疑惑和解答
- jquery+html5+canvas实现图片 预览 压缩 上传
- [Html5] HTML5 开发手机应用
- HTML5实战与剖析之classList属性
- [HTML5] Add an SVG Image to a Webpage and Get a Reference to the Internal Elements in JavaScript
- 【CSS3】---- 纯 css 控制 html5旋转音乐图标,控制背景音乐
- [Link]用HTML5/CSS3/JS开发Android/IOS应用
- 10 【html5和css3】1/4
- 采用 HTML5 File API 达到client log
- HTML5新特性之WebSocket
- 图片本地预览 flash html5
- 【前端领域高频笔试面试】—— Html5+CSS3相关
- HTML5 — 知识总结篇《VI》【路径的写法】