2011-03-16 22 views
6

我很惊讶IE9的发布版本缺少对像文本阴影和边框图像等更基本的CSS3元素的支持。一个很好的JavaScript框架,在IE9中增加了对IE6-8和CSS3的CSS3支持?

什么是最广泛的JavaScript框架添加/模拟IE6-9的CSS3元素,而不是使用一堆像ie-css3,CSS3PIE,Modernizr,html5shiv,等等一堆小框架?

我确定没有一个框架可以完成这一切,但我正在寻找最接近的框架。

+0

你爱上了微软PR,现在看到的现实。永远不要信任IE做正确的事情。 – Rob 2011-03-16 23:45:50

回答

3

什么?你知道IE不遵循标准吗?人们何时将学习...

尝试Selectivizr。来自网站:“selectivizr是一个JavaScript实用程序,它模拟Internet Explorer 6-8中的CSS3伪类和属性选择器。只需在页面中包含脚本,selectivizr将完成剩下的工作。”我不知道IE9有什么支持,但它应该比IE6容易得多,所以我想它应该可以正常工作。

虽然你仍然需要一些“小型框架”,因为它们做的很好,它们足够小,所以没有必要重新发明轮子,而只是为了拥有一个大框架而不是几个小的。很难制定一个通用的框架,这就是为什么你有一些多样性,我认为这是一件好事。

但是,不要指望只包含一些库,所有的浏览器都会得到完美的CSS3支持,因为这不会很快发生。

如果您想要能够在IE6的所有浏览器中保持一致的高级效果,那么我会推荐使用Raphaël。它在IE上使用VML,在其他浏览器上使用SVG。 API也比CSS简单,但这当然是一个有趣的问题。但即使不是API,也很难打败你的观点:你可以在没有使用Firefox 3.0+,Safari 3.0+,Chrome 5.0+,Opera 9.5+和Internet Explorer 6.0+的情况下看到相同的圆角和其他好东西图片。

1

列表中的项目各自做不同的事情。我认为一个单一框架实施所有这些事情是没有意义的。

只需包含您实际需要的清单中的清单。

<!--[if lt IE 9]> 
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 
  • Modernizr的有html5shiv 很多特征检测的功能:

    • 你应该(显然)仅当您使用的网页上的HTML5元素使用html5shiv

      Modernizr不会将缺失的 功能添加到浏览器;相反,它 检测到 功能的本机可用性,并为您提供一种方式来 保持您的网站上的 控制良好水平,无论浏览器的 功能。

      如果您只是想在IE中设置HTML5元素的样式,请使用html5shiv。使用Modernizr的,如果你想依靠,如果某些功能都支持做不同的事情,例如:

      .my_elem { 
          border: 1px inset #666; 
      } 
      .borderimage .my_elem { 
          border: none; 
          border-image: url(fancy-border.png) 5 5 5 5 round; 
          -moz-border-image: url(fancy-border.png) 5 5 5 5 round; 
          -webkit-border-image: url(fancy-border.png) 5 5 5 5 round; 
      } 
      
    • 背后CSS3PIE和Modernizr的这个想法是非常不同的。

      CSS3PIE是最常用的方式是内部CSS:

      #myElement { 
          ... 
          behavior: url(PIE.htc); 
      } 
      

      Modernizr的,您可以同时在你能提供安全知识的任何自定义回退你的愿望为做浏览器使用本地花哨的新功能不支持特定的功能。

      虽然CSS3PIE试图完美模拟一组有限的CSS3属性,只能在旧版本的Internet Explorer中工作,除了在相关元素上包含behavior属性外,没有其他工作。