2011-10-17 14 views
5

Ho un problema con la rotazione in Internet Explorer 8 e inferiore. Sono in grado di ruotare un div genitore, ma il bambino (posizionato in assoluto) non ruota con il suo genitore. Quando non posiziono il bambino assoluto, fa la rotazione giusta.Rotazione e posizione: assoluto (IE8 e inferiore)

Ecco il mio codice

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 


<style> 
    .parent 
    { 
     background-color: #f00; 
     position: absolute; 
     top: 300px; 
     left: 300px; 
     width: 500px; 
     height: 500px; 

     filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476, sizingMethod='auto expand'); //45deg 
    } 

    .child 
    { 
     background-color: #0f0; 
     position: absolute; 
     top: 150px; 
     left: 150px; 
     width: 300px; 
     height: 300px; 
    } 


</style> 

</head> 

<body> 

<div class="parent"> 
    This is the parent 
    <div class="child"> 
     This is the child 
    </div> 
</div> 



</body> 
</html> 

Quando si visualizza questo codice in IE8, allora questo è il risultato

enter image description here

vorrei che il div verde ha la stessa rotazione come il div rosso

Grazie!

+0

Solo per curiosità, perché stai ruotando un div? Non l'ho mai trovato utile, sono solo curioso delle tue motivazioni. – FreeSnow

+0

Devo creare un sito che assomigli un po 'a una presentazione preziosa :). http://prezi.com/ – Vinzcent

+0

Oh, bella idea. Bene, buona fortuna :) – FreeSnow

risposta

1

Una soluzione: utilizzare una classe per applicare la rotazione a qualsiasi elemento figlio-assoluto-posizionato:

css:

.rotate { 
     filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476, sizingMethod='auto expand'); //45deg 
} 

html:

<div class="parent rotate"> 
    This is the parent 
    <p class="child rotate"> 
     This is the child 
    </p> 
</div> 
+0

Funziona, ma la posizione del bambino rispetto al genitore non è la stessa di quando non c'era alcuna rotazione. – Vinzcent

+2

aggiungendo un 'z-index' con qualsiasi valore al genitore dovrebbe risolvere il problema. Trovato qui: http://stackoverflow.com/questions/3055383/dximagetransform-matrix-absolutely-position-child-elements-not-rotating-in-ie-8/6268206#6268206 – achairapart

-1

un errore in IE8.

Questo è un modo semplice ed efficace per risolvere questo:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 

inserto sopra alla testa

Problemi correlati