编写HTML5文档时,为什么要遵守W3C标准

html-css010

编写HTML5文档时,为什么要遵守W3C标准,第1张

什么要遵守W3C标准,我也思考过这个,以下是我个人的见解。

一句话:所谓的标准就是为了弥补主观上的不足。

这是别处来,忘记那儿了,非常有道理,非常有嚼劲,知道出处的告知一声。

我深入思考了一下:

W3C 标准是为了弥补主观上的不足,弥补的是新手对 SEO 的理解,即使不了解 SEO,只需要去遵循 W3C 标准即可确保获得良好的 SEO,这是因为 SEO 的编写者同样遵循这一种约定。

如果不遵循约定的话,比如用 DIV 写一切的家伙,SEO 的编写者要怎样才能知道你写的是什么,他不可能搜索全部 DIV 的,太费资源和时间了,所以咱们就约定一下将那些很重要的信息比如关键词是:HTML5、CSS3、Node 的这些都写到一个标签里面好不好?这样省资源省时间呢,大家觉得都 OK 于是我们就专门弄了一个表述这些信息的标签,叫 meta(元信息标签),然后在根据不同的类型来区分一下这些重要信息,比如用 name="keywords" 来标识关键词:

<meta name="keywords" content="HTML5,CSS3,Node">

用 name="author" 来标识作者:

<meta name="author" content="zqh">

这样 SEO 就知道那些内容是作者,那些内容是关键词了~

SEO 是英文 Search Engine Optimization 的缩写,中文译为"搜索引擎优化"。

当然了,因为是标准,所以你不遵守也是可以的,但这样搜索引擎可能不会抓取非标准的页面,如果你写过爬虫的话就会明白抓取那些不遵循标准来的家伙(DIV 乱用)是多么麻烦,直接忽略掉这些网站是最好的选择。

HTML介绍分为3部分,第一部分是HTML简介及历史,第二部分是HTML元素,第三部分是实战及学习笔记。

以下是第一部分:

参考资料:

w3.org, html 文档

HTML,即Hypertext markup language是万维网的核心标记语言,最初HTML被设计作为一门语言,用于语言描述科学文档,后续则被拓展用于描述一系列不同类型的文档,甚至应用。

1990-1995,迅速发展,从CERN到IETF(国际互联网工作组)接管.

1995-1997, 随着W3C建立,又变成由W3C主导,期间推出了HTML 3.2 和HTML 4.01

1998-2000,W3C停止HTML版本推进,开始研究XHTML 1.0(XML-based HTML 4.01), 其没有添加任何新特性,反而更加地长篇累牍,更严格的检测标准等。后续发布了XHTML 2.0,其与XHTML 1.0,HTTP 4.01不兼容。

期间直到2003,HTML没有版本的变化,但期间出现了 DOM Level 1 &2,提高了客户端的使用体验以及功能拓展。

2003,XForms(定位于下一代Web form)发布,其证明了很多它所拥有的新特性能拓展到HTML 4.01,Mozilla及Opera借此于2004年向W3C提出了更新HTML版本的提议,但W3C选择继续发展XML-based作为替代HTML。

于是Mozilla, Opera联合Apple组成新实体WHATWG,发展HTML 的Living document,对HTML继续进行拓展及新特性添加,直到后期W3C才转回HTML标准的制定,多谢WHATWG,才有了我们今天基本采用的HTML 5。

W3C与WHATWG于2008年一起发布了第一份草案,2014年正式发布HTML 5。

*MDN Web Docs 简介:Mozilla Developer Network的后续,致力于Web标准文档的发展以及Web开发资料分享,包括HTML5, JavaScript, CSS, Web APIs, Node.js以及网络扩展等

*HTML/XML/DOM等的语法上的一些区别:

namespaces不能用在HTML语法中,但可用作DOM及XHTML里;

<noscript>可被用在HTML里,但不能用在DOM,XHTML里,

-->仅仅能用在DOM里。

*Text: in the context of content models, means either nothing, or Text nodes. Text is sometimes used as a content model on its own, but is also phrasing content, and can be inter-element white space

Text nodes and attribute values must consist of Unicode characters

*<html>end tag, <head>start tag, end tag, <body>start tag, end tag等在满足一定条件情况下可以省略,更多可以省略的可以参考 这里 。

*块级及内联元素

块级元素会以可见的块呈现在页面上,其显示会与其前后的content有一行的间距,常用于呈现结构化的elements,如paragraph, list, nav, footer等,块级元素不能被内嵌在内联元素之中,块通常只出现在<body>里。

内联元素是包含在块里的,仅仅只包含一小部分内容,常呈现在段落里,如<a>, <em>, <strong>等。其存在将不会导致新的一行的产生。

注意可以使用css display 属性,设置inline为block。

*HTML parsing model

*<audio>, <canvas>, <embed>, <iframe>, 及MathTL, SVG里的元素为embeded元素

*元素是大小写不敏感的