关于html
经过一系列修订,到现在说的 HTML
一般指 HTML 4.01
;
而现在的 HTML 5
则是 HTML
的第五个修订版,其主要的目标是将互联网语义化,以便更好地被人类和机器阅读,并同时提供更好地支持各种媒体的嵌入。
HTML5
本身并非技术,而是标准。它所使用的技术早已很成熟,国内通常所说的html5
实际上是html
与css3
及JavaScript
和api
等的一个组合,大概可以用以下公式说明:HTML5≈HTML+CSS3+JavaScript+API
关于文档类型
DOCTYPE文档类型指出浏览器按照什么规则解释HTML或XHTML中的标记
W3C标准出来之前,浏览器对页面的渲染没有统一的标准,即混杂模式;
W3C标准出来后有了统一的标准,即标准模式;
有的网页没有doctype声明
或者doctype声明
错误,就以混杂模式解析,即兼容老版浏览器
完整的doctype
声明一般都会以标准模式解析
在HTML4.0
中,doctype
声明引用DTD
,因为HTML4.0
基于SGML
;HTML5
不基于SGML
,因此不需要引用DTD
。
不能识别HTML5新标签而不能使用,解决办法有两种:
1)方法1:实现标签被识别
IE8/IE7/IE6 支持通过 document.createElement(tagName)方法产生的标签,可以利用这一特性让这些浏览器支持 HTML5 新标签;浏览器支持新标签后,还需要添加标签默认的样式
2)方法2:
当然最好的方式是直接使用成熟的框架、使用最多的是 html5shim框架):
Github: https://github.com/afarkas/html5shiv/
用到条件注释加 JS 代码实现
<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->
直接加入这一句代码就可实现兼容问题,关于条件注意中的 <!--if lt IE9>
是判断是否小于 IE9 以下浏览器,如果是就执行这段 JS 代码 ,如果不是,就忽略掉。
html5shiv 用起来还是很广泛的,可以放心使用
一般在工作中是不考虑不支持 HTML5 的浏览器的,比如 IE678,如果真的需要兼容到 IE6 那里,一般也就不用 HTML5 标签了,具体的自己根据实际情况来把握。