Tengo una situación en la que, en circunstancias normales de CSS, un div fijo se colocaría exactamente donde se especifica ( top:0px
, left:0px
).
Esto no parece respetarse si tengo un padre que tiene una transformación translate3d. ¿No estoy viendo algo? He probado otras opciones de estilo de transformación de kit de web y opciones de origen de transformación, pero no tuve suerte.
He adjuntado un JSFiddle con un ejemplo donde hubiera esperado que el cuadro amarillo estuviera en la esquina superior de la página en lugar de dentro del elemento contenedor.
Puede encontrar a continuación una versión simplificada del violín:
#outer {
position:relative;
-webkit-transform:translate3d(0px, 20px , 0px);
height: 300px;
border: 1px solid #5511FF;
padding: 10px;
background: rgba(100,180,250, .8);
width: 80%;
}
#middle{
position:relative;
border: 1px dotted #445511;
height: 300px;
padding: 5px;
background: rgba(250,10,255, .6);
}
#inner {
position: fixed;
top: 0px;
box-shadow: 3px 3px 3px #333;
height: 20px;
left: 0px;
background: rgba(200,180,80, .8);
margin: 5px;
padding: 5px;
}
<div id="container">
Blue: Outer, <br>
Purple: Middle<br>
Yellow: Inner<br>
<div id="outer">
<div id="middle">
<div id="inner">
Inner block
</div>
</div>
</div>
</div>
¿Cómo puedo hacer que translate3d funcione con niños de posición fija?