если кому то нужно кросс-браузерный rotate с помощью скриптов, то вот:
<style type="text/css">
#to_rotate {
position: relative;
width: 100px;
height: 100px;
background-color: #f00;
}
</style>
<div id="to_rotate">test text</div>
<script type="text/javascript">
function rotateElem( elem, deg ) {
var style = elem.style;
if ( elem.ownerDocument && elem.ownerDocument.defaultView ) {
style = elem.ownerDocument.defaultView.getComputedStyle( elem, null );
} else if ( elem.currentStyle ) {
style = elem.currentStyle;
}
if ( eval("/*@cc_on @_jscript_version;@*/") <= 5.8 ) {
var rad = ( deg * Math.PI ) / 180.0,
cos = Math.cos(rad),
sin = Math.sin(rad);
elem.originalWidth = elem.originalWidth || elem.offsetWidth;
elem.originalHeight = elem.originalHeight || elem.offsetHeight;
elem.style.filter = style.filter.replace( /progid:DXImageTransform.Microsoft.Matrix\([^)]*\)[;]?/g, "" ) +
"progid:DXImageTransform.Microsoft.Matrix("+
"sizingMethod='auto expand',M11="+cos+",M12="+(-sin)+",M21="+sin+",M22="+cos+")";
elem.style.marginLeft = -Math.round( ( elem.offsetWidth - elem.originalWidth ) / 2 );
elem.style.marginTop =- Math.round( ( elem.offsetHeight - elem.originalHeight ) / 2 );
} else {
var Transform = (
style.transform ||
style.OTransform ||
style.MozTransform ||
style.WebkitTransform ||
style.msTransform
)+"";
elem.style.OTransform =
elem.style.MozTransform =
elem.style.WebkitTransform =
elem.style.msTransform =
elem.style.transform =
Transform.replace( /(none|[\s]?(rotate|matrix)\([^)]*\))/g, "" ) + " rotate(" + deg + "deg)";
}
}
setInterval((function(){
var start = 0;
return function() {
rotateElem( document.getElementById('to_rotate'), start+=2 );
}
})(), 50);
</script>
работает во всех браузерах.