在IE9和IE10中,旋转容器不会剪切其旋转的嵌套元素

时间:2013-09-28 19:49:01

标签: css rotation internet-explorer-9 internet-explorer-10

以下是一个示例:http://jsfiddle.net/aFEZ8/3/

HTML

<span id="square"></span>
<div id="wrap">
    <div></div>
</div>

CSS

#wrap{
position:absolute;
left:100px;
top:100px;
border:solid 1px #000;
width:100px;
height:100px;
-webkit-transform:rotate(33deg);
overflow:hidden;
transform:rotate(33deg);
}
#wrap div{
-webkit-transform:rotate(-33deg);
-webkit-transform-origin:0 0;
transform:rotate(-33deg);
transform-origin:0 0;
height:100%;
width:200%;
border:solid 1px #f00;
cursor:pointer;
position:absolute;
}
#square{
position:absolute;
left:200px;
top:100px;
width:4px;
height:4px;
background:#aaa;
}

如果你试图悬停灰色方块,你会在IE 9和10中看到指针,这是错误的。

我该怎么做才能把事情做好?

1 个答案:

答案 0 :(得分:0)

经过几个小时的挫折后,我找到了一个解决方案:你只需要添加额外的包装,它不会旋转 - 它正确地剪辑其内部元素:http://jsfiddle.net/aFEZ8/4/

If someone thinks it's a good idea to add code here, please feel free to do it.
I think it's superfluous in this case.

使用多个嵌套的旋转容器和花费在计算边距和角度上的一些努力,可以制作任意html的多边形剪辑,其中光标悬停正常工作,哪个IMO是不太好支持的剪辑html的一个很好的替代方案与svg。

更复杂的例子:http://jsfiddle.net/aFEZ8/5/ Chrome中的脆弱边缘(版本29,Win 7)......哦,好吧。其他现代浏览器(至少是桌面版,包括用于Windows的“最后一个”Safari)没有这个问题。