自从淘宝新首页出来之后,我看了下它的源代码,一惊,怎么如此简洁?如下:
1 2 3 4 5 | <!doctype html> <html> <head> <meta charset="gbk" /> <title>淘宝网 - 淘!我喜欢</title> |
但一直没时间深入了解,所以自己做页面也都按原来的xhtml strict头写div+css。最近有点按耐不住了,想想还是早点了解可以早点使用,这么简洁看了就舒服啊。
于是去w3cshools查了下,原来这个doctype是html5的,那就奇怪了, IE6/7啥的不是还没支持html5吗?根据我以前的经验,产生了两个困惑:
1. 如果不支持html5的IE在无法识别doctype的时候,会默认使用html 4.0,那么css hack啥的就无法使用了?
2. 如果不支持html5的IE能识别meta标签的charset属性?
通过反复google(题外话:由于谷歌要退出中国,这几天我搜索几乎都用google了)。找到了答案:
1. 曾经我由于没深入了解,所以一直存在误区:我一直以为用html 4.0的doctype就不支持css hack,用xhtml的不管是过渡还是严格版本的doctype就都支持css hack。其实完全理解错了,浏览器支不支持现在流行的css hack是根据Quirks Mode和Standards Mode来进行渲染的。所以如果是Quirks Mode就不支持css hack了,如果是Standards Mode就支持。
目前浏览器是这样判断的,如果没任何doctype申明,那么就是Quirks Mode
如果是strict dtd不管是html还是xhtml都是Standards Mode
而我以前产生误区的原因是那时候用editplus新建html文件有模板,而自带的模板doctype申明是html Transitional,这个是Quirks Mode所以导致我以为html的doctype就不支持了。
这回清晰了,再看yahoo.com,用的是html4 strict,淘宝用的是html5的,都是Standards Mode,都能css hack了,兼容浏览器还有什么担心的吗?
2.不支持html5的IE能识别meta的html5新属性charset。原因不明。

