我有一个简单的文本,它位于一个div中,类似于以下内容:
<div id="banner">
<div>This is an example text</div>
</div>
我想让div内的文本旋转20-30度。我已经在stackoverflow找到了这个关于如何实现旋转效果的话题,它可以在Firefox和Chrome中给我想要的结果,但是在IE7、IE8和IE9中无法工作。我还尝试过jquery rotate,但使用时似乎插件对div本身做了一些操作,导致其消失,而不是旋转div内的文本。使用javascript和/或css是否可能实现此功能?
注意:Cufon也正在使用。
Codler的回答后更新:
以下是应用Codler回答后的CSS代码,在FF和Chrome中工作正常。
-ms-transform: rotate(-20deg);
-moz-transform: rotate(-20deg);
/*-moz-rotation-point: 0 0;*/
-webkit-transform: rotate(-20deg);
/*-webkit-rotation-point: 0 0;*/
-o-transform: rotate(-20deg);
/*-ms-writing-mode: tb-lr;
* html writing-mode: tb-lr;*/
更新2: 现在IE7和IE8可以旋转文本,但在IE9中,我的旋转文本后面出现了一个大黑色方块。这是什么原因?CSS如下:
-moz-transform: rotate(-20deg);
-o-transform: rotate(-20deg);
-webkit-transform: rotate(-20deg);
-ms-transform: rotate(-20deg);
transform: rotate(-20deg);
background-color:transparent;
/*-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.93969262, M12=0.34202014, M21=-0.34202014, M22=0.93969262,sizingMethod='auto expand')";*/
/*filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.93969262, M12=0.34202014, M21=-0.34202014, M22=0.93969262,sizingMethod='auto expand');*/
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.93969262, M12=0.34202014, M21=-0.34202014, M22=0.93969262,sizingMethod='auto expand');
zoom: 1;
z-index:1;
position:absolute;
padding : 45px 10px 15px 10px;
这是最终的可工作代码。感谢Jeff和Codler。
HTML:
<div id="banner">
<div>This is an example text</div>
</div>
默认 CSS:
#banner > div
{
-moz-transform: rotate(-20deg); /*FF*/
-o-transform: rotate(-20deg); /*Opera*/
-webkit-transform: rotate(-20deg); /*Safari, Chrome*/
-ms-transform: rotate(-20deg) !important; /*IE9*/
transform: rotate(-20deg); /*CSS3 default*/
background-color:transparent;
zoom: 1;
z-index:1; /*NEEDED FOR IE8*/
width: 191px;
position:absolute;
padding : 45px 10px 15px 10px;
}
有条件地加载针对IE 7和8的CSS:
#banner
{
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.93969262, M12=0.34202014, M21=-0.34202014, M22=0.93969262,sizingMethod='auto expand') !important;
padding-top:0px;
}