在我的下一个个人项目中,我想使用HTML5文档类型。我知道几乎所有的浏览器都支持HTML5,甚至IE6,因为HTML5向下兼容。HTML5 Doctype + JS库 - 必要?
但是:我是否必须使用任何JS库才能真正实现它,例如HTML5shim,Modernizr或HTML5 Boilerplate(尽管我知道HTML5 Boilerplate不是库)?
我的意思是,如果我不必使用它们,这些项目是什么 - 我读过使用HTML5shim会是所谓的“最佳实践”,这是真的吗? 如果我不使用他们中的任何一个,会发生什么?一些浏览器会忽略像section
和aside
这样的标记元素吗?
我也读过使用这些库本质上是不好的,因为如果用户已经停用JS,站点会中断 - 但是另一方面:谁现在已经停用了JS?我可以只包含一个noscript
标签,不是吗?
此外,我读过一篇文章,这些库引起更多的问题,然后他们给我们一个好处。对我来说,这似乎是作者的个人观点,还是他们真的会造成如此多的问题?
编辑
好了,用HTML5样板,我不得不说,这是一个很好的解决方案,到目前为止在一起Modernizr的测试之后。但有一件事情让我感到不安,我不确定我是否做得对。 示例:我想在名为#form-box
的div上使用border-radius
。对于这个例子,我假设圆角对于网站来说是必不可少的。如果他们不是必不可少的,我不会看到一个问题,如果IE用户没有看到他们。
所以我已经得到了类,给框基本样式每个浏览器应该能够解释:
#form-box {
background-color: #f0eeee;
width: 400px;
height: 300px;
margin: 0 auto;
margin-top: 50px;
}
然后,对于知道border-radius
浏览器:
.borderradius #form-box {
-webkit-border-radius: 8px; /* Saf3-4, iOS 1-3.2, Android ≤1.6 */
-moz-border-radius: 8px; /* FF1-3.6 */
border-radius: 8px; /* Opera 10.5, IE9, Saf5, Chrome, FF4, iOS 4, Android 2.1+ */
/* useful if you don't want a bg color from leaking outside the border: */
-moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
而对于不知道border-radius
(即IE6)的浏览器,我使用添加圆角的polyfill“PIE”,即使在IE中使用JS .htc文件:
.no-borderradius #form-box {
behavior: url(PIE.htc);
-webkit-border-radius: 8px; /* Saf3-4, iOS 1-3.2, Android ≤1.6 */
-moz-border-radius: 8px; /* FF1-3.6 */
border-radius: 8px; /* Opera 10.5, IE9, Saf5, Chrome, FF4, iOS 4, Android 2.1+ */
/* useful if you don't want a bg color from leaking outside the border: */
-moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
这就是我现在要做的。这很酷,但是:这么多重复的代码?这真的是必要的吗?或者我做错了什么?
IE6与HTML5不兼容,实际上,IE <9不兼容,因为IE的CSS实现不适用于任何不能识别的元素,如节,页眉,页脚等。 – Rob 2012-02-25 03:12:27