Home > Develop > CSS3 transform 旋转在IE里的实现
2010March . 21st

CSS3 transform 旋转在IE里的实现

transform rotate 是CSS3里使对象旋转的一个属性,虽然目前所谓的兼容CSS3的浏览器对它的支持还不算好,但Firefox、Webkit和Opera这些浏览器都已经提供了官方的hack去支持这个属性。唯独在IE里,这个属性无法通过一般的CSS去实现。

在W3C官方的标准里,通过transform属性使对象旋转的写法如下:

1
transform: rotate(40deg); /* 其中40是旋转的角度 */

可是由于目前几乎所有的浏览器对这个属性的渲染效率都很低,所以我们可以用下面的hack去提高渲染效率:

1
2
3
-o-transform: rotate(40deg); /* Opera */
-webkit-transform: rotate(40deg); /* Webkit */
-moz-transform: rotate(40deg); /* Firefox */

由于目前所有版本的IE都不兼容CSS3,所以我们只能通过IE的CSS滤镜来实现,写法如下:

1
filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=0.7660444431189777, M12=-0.6427876096865394, M21=0.6427876096865398, M22=0.7660444431189779)";

这个一个相当复杂的滤镜,详细的参数大家可以看看这个网页

关于这篇文章的演示,大家可以看这个 DEMO: css-Transforms

PS:

大家可以下载本文提供的DEMO,然后把代码里 transform 属性放在三个浏览器的 hack 后面,刷新一下页面看看会有什么现象。我在 Firefox 里看到的是中间那个旋转的 DIV 会跳动一下。

Tip:

transform 是一个相当复杂的属性,目前可以实现旋转和动画效果,我认为这个属性在 CSS3 标准完全确定下来以后会变得更加强大。

推荐到豆瓣
  1. 2010March . 21st - 9:25 PM

    高手啊 你

  2. 2010March . 21st - 9:56 PM

    CSS滤镜。。。这个太复杂了

  3. 2010March . 21st - 9:57 PM

    这个有点意思,你下面的浮动广告窗做的不错嘛,挺有创意。

  4. 2010March . 22nd - 2:14 AM

    又看到 “IE 无法实现” 这样的语句了,嘎嘎 ~
    鸡冻了 ~

  5. 2010March . 22nd - 2:21 PM

    这个很强大嘛,IE再次吊车尾~

  6. 2010March . 22nd - 6:28 PM

    这个属性我貌似用的不多~

  7. 2010March . 22nd - 9:22 PM
  8. 2010March . 24th - 12:26 PM

    厉害,我都没有注意这个功能呢。

  9. 2010March . 27th - 2:29 AM

    原来字体可以这样放啊,长见识了

  10. 2010April . 27th - 3:31 PM

    -o-transform在opera10.0之前不支持。
    看见有人用canvas弄了。

    ie滤镜的这个值,看来还是用js设置比较合理。

  11. 2010April . 27th - 4:22 PM

    @ONEBOYS
    的确Opera 10以后进步越来越快
    老版本的 IE 对 JS 的解析能力太差

  12. 2010May . 16th - 7:38 PM

    IE真让人没办法

  13. 2010June . 15th - 12:32 AM

    @万戈
    万戈兄到哪都能看到你哈~

  14. 2010June . 15th - 7:40 AM

    @阿邙
    有WP的地方就有我,哈哈

  15. 2010August . 31st - 8:03 PM

    谢谢分享,可惜IE的角度不能随意调整,而且那些参数太奇怪了,怎么计算都不知道。。。

  16. 2010September . 1st - 12:51 PM

    @吉光片羽
    怪吧?那些值是各条边的水平/垂直叫的 sin / cos 值

  17. 2010December . 11th - 9:53 PM

    @bolo
    呃,又找到你这来了,呵呵,看到有自己评论,吓一跳。现在弄明白参数是怎么使用的了,然后丢给JS自己去计算,IE和最新的火狐、CHROME都OK,但是CPU都90%左右,不知道是CSS惹的祸,还是JS惹得祸。。。网页最小化以后,CPU马上归零,神奇。。。

Subscriber selector

Close