после того, как вращение и клип Div-hover запускается неправильно в IE9 - PullRequest
2 голосов
/ 04 января 2012

У меня есть следующий код: http://jsfiddle.net/cosoroaba/nCEwv/

HTML:

<div id="square">
    <div class="corner-wrapper">
        <div id="ctr"></div>
    </div>
</div>

CSS:

#square {
    border: 1px solid #CCCCCC;
    display: block;
    height: 400px;
    line-height: 400px;
    margin: 50px auto;
    overflow: hidden;
    position: relative;
    text-align: center;
    width: 400px;
}
.corner-wrapper{
  -webkit-transform: rotate(45deg);  
     -moz-transform: rotate(45deg);  
      -ms-transform: rotate(45deg);  
       -o-transform: rotate(45deg);  
          transform: rotate(45deg);
    clip: rect(0px, 141.421px, 70.7107px, 0px);
    height: 141.421px;
    position: absolute;
    right: -20.7107px;
    top: -20.7107px;
    width: 141.421px;
}
#ctr{
 -webkit-transform: rotate(-45deg);  
     -moz-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
       -o-transform: rotate(-45deg);
          transform: rotate(-45deg);
    left: 20.7107px;
    top: 20.7107px;
    background-color: blue;
    display: block;
    height: 100px;
    position: absolute;
    width: 100px;
}

#ctr:hover{
    background-color: green;
}

#ctr:active{
    background-color: red;
}

Я вращаюсьупаковщик в одном направлении и содержимое в противоположном направлении, затем разрезая упаковку пополам, используя clip, чтобы получить «треугольник» -div

, который хорошо работает на FF, Chrome и Opera

но есть проблема в IE9 http://www.screenr.com/ikos

при наведении на контент в IE9, даже если он будет скрыт оболочкой

1 Ответ

2 голосов
/ 04 января 2012

Я бы реорганизовал ваш код, происходит много ненужных преобразований, и если вы измените размер вашего контейнера, вам придется все пересчитать.Я не проверял в IE9, но это должно работать:

<div id="square">
        <div id="ctr"></div>
</div>

CSS

#square {
    border: 1px solid #CCCCCC;
    display: block;
    height: 400px;
    line-height: 400px;
    margin: 50px auto;
    overflow: hidden;
    position: relative;
    text-align: center;
    width: 400px;
}

#ctr{
 -webkit-transform: rotate(-45deg);  
     -moz-transform: rotate(-45deg); 
      -ms-transform: rotate(-45deg); 
       -o-transform: rotate(-45deg); 
          transform: rotate(-45deg);
    -webkit-transform-origin: 0 0;
    -moz-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    -o-transform-origin: 0 0;
    transform-origin: 0 0;
    right: 0;
    top: 0;
    background-color: blue;
    display: block;
    height: 150px;
    position: absolute;
    width: 100px;
}

#ctr:hover{
    background-color: green;
}

#ctr:active{
    background-color: red;
}

jsfiddle: http://jsfiddle.net/exKJK/

...