CSS3 有一个transform 样式,它允许您旋转任何HTML 元素。你可以这样使用它:
.myelement {
transform:rotate(45deg);
}
这应该适用于大多数浏览器的最新版本(Firefox 5、Chrome 13、IE9 等)。但是,较旧的浏览器会出现问题。
一些较旧的浏览器需要供应商前缀,因此您需要 -moz-transform 和 -webkit-transform 等。
旧版本的 IE 根本不支持 transform 样式,但它们确实有一个 filter 属性可以代替使用。不幸的是,IE 的旋转过滤语法相当复杂。您必须指定一个矩阵变换,其值以弧度而不是度数为单位,所以它可能有点晦涩。
对于 45 度旋转,您将使用以下代码:
.myelement {
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=-0.70710678, M21=0.70710678, M22=0.70710678,sizingMethod='auto expand')";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=-0.70710678, M21=0.70710678, M22=0.70710678,sizingMethod='auto expand');
}
您会注意到 IE6 和 IE7 需要 filter 样式,而 IE8 需要 -ms-filter(语法略有不同)。
这里不解释了,我给你指一个详细解释的页面:http://www.useragentman.com/blog/2010/03/09/cross-browser-css-transforms-even-in-ie/
关于filter 样式的最后一点注意事项:IE6/7 语法是无效的 CSS(由于 progid 后面的冒号等原因)。我已经看到它实际上导致其他浏览器(特别是 Firefox 3.6)无法解析整个样式表。出于这个原因,我建议在单独的特定于 IE 的样式表中使用它,您可以将其完全从其他浏览器中排除。
如果您想通过 Javascript 来实现,我建议您使用 JQuery 插件。这将消除必须为所有不同浏览器编写单独代码的复杂性。更多信息请看这里:http://plugins.jquery.com/plugin-tags/rotate
希望对您有所帮助。