2012-02-24 28 views
1

在我的下一个个人项目中,我想使用HTML5文档类型。我知道几乎所有的浏览器都支持HTML5,甚至IE6,因为HTML5向下兼容。HTML5 Doctype + JS库 - 必要?

但是:我是否必须使用任何JS库才能真正实现它,例如HTML5shim,Modernizr或HTML5 Boilerplate(尽管我知道HTML5 Boilerplate不是库)?

我的意思是,如果我不必使用它们,这些项目是什么 - 我读过使用HTML5shim会是所谓的“最佳实践”,这是真的吗? 如果我不使用他们中的任何一个,会发生什么?一些浏览器会忽略像sectionaside这样的标记元素吗?

我也读过使用这些库本质上是不好的,因为如果用户已经停用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; 
} 

这就是我现在要做的。这很酷,但是:这么多重复的代码?这真的是必要的吗?或者我做错了什么?

+0

IE6与HTML5不兼容,实际上,IE <9不兼容,因为IE的CSS实现不适用于任何不能识别的元素,如节,页眉,页脚等。 – Rob 2012-02-25 03:12:27

回答

1

我已经没有问题使用html5boilerplate,虽然我通常会减少它,并删除我的项目不需要的东西,它是一个伟大的样板开始。

+0

感谢您的评论!自从发布这里我已经测试了与Modernizr的合作。尽管起初我感觉有点不舒服,但迄今为止效果很好。我编辑了我的第一个问题,请看看它。 – Sven 2012-02-25 01:23:57

+0

为浏览器兼容性,您将需要使用html5shim没有它IE <9将不正确样式元素。据我所知,这是获得html5工作跨浏览器的唯一真正需求 – 2012-02-25 01:31:02

+0

那么,Modernizr文档说明如下:'从Modernizr 1.5开始,这个脚本与流行的html5shim/html5shiv库中使用的相同。参见http://www.modernizr。com/docs/ – Sven 2012-02-25 01:35:15