严格编码 - HTML 第一篇

DOCTYPE

时过境迁,我们已无需在复制粘贴冗长的DOCTYPE代码,我们可以直接使用HTML5的文档类型<!DOCTYPE html>而无需担心兼容性问题,但在此之前的版本XHTML标准仍有参考意义。

  1. XHTML 元素必须被正确地嵌套。
  2. XHTML 元素必须被关闭。
  3. 标签名必须用小写字母。
  4. XHTML 文档必须拥有根元素。

在此我针对以上几点补充说明:

  1. 其实无论哪种版本对于开发者而言都应该做到正确的嵌套元素。为了节省篇幅我将使用ZenCode语法作示例。
    正确的嵌套如下:

    html>head+body
    ul>li>a

  2. 此时所说的元素必须被关闭包括成对标签如<p></p>或者单独标签<hr/><br/>,单独标签在HTML5文档类型中不应被关闭。

  3. 实际上浏览器会无视html的大小写,但我们也没必要多按住 Shift 或者 Capslock

  4. 即使你没有写DOCTYPE、html、body 浏览器也会在外面包裹上,但为什么不写html元素呢?

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta charset="UTF-8" /> 如何选择?

你可以放心的使用<meta charset="UTF-8" />在所有的浏览器。参见:Obsolete practices to avoid 另外需要强调meta charset设置请放置在<head>之后使之成为第一个meta声明,依照W3C规范

“ META declarations should appear as early as possible in the HEAD element”。

X-UA-Compatible

建议如此设置<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />,IE=edge告诉IE使用最新的引擎渲染网页,chrome=1则可以激活Chrome Frame(使安装了Chrome Frame的IE浏览器和某些极速浏览器使用WebKit 引擎处理网页,另外也支持IE所没有的HTML5等其他open web技术。)。

如上所述X-UA-Compatible则跟在meta charset之后,如果因为某些原因IE采用兼容试图之后才出现这个meta设置那就无意义了,所以还是尽量靠前吧,这里的某些原因暂时没找到相关文献。

属性值的包裹是用单引号、双引号还是不写引号?

HTML规范并没有指明属性的值是否应该被引号包裹,是用单引号还是双引号,浏览器为了页面能较好的呈现也会兼容这三种方式。然而为了较好的阅读性以及我们可能在属性的值写上JSON数据或者其他HTML片段(此时HTML片段里的属性值可用单引号包裹或者使用双引号HTML实体&quot;)还是使用双引号更为合理。

根据The link element `rel=”stylesheet”`在<link>标签上是必须的,type并不是必须的无论是在<link>标签上还是<style>标签上。
参见:

text/javascript

在 HTML 4.01 和 XHTML 1.0标准上是必须的,参见SCRIPT,HTML5并不是必须的,而不写text/javascript在所有浏览器上都不会产生错误。

中文分词算法的实现,包括最大向前匹配、最大向后匹配,最大双向匹配,ngram,HMM,及其性能对比 从WordPress迁移到hexo
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×