У меня есть ситуация, когда в обычных условиях CSS фиксированный div будет располагаться именно там, где он указан ( top:0px
, left:0px
).
Похоже, это не соблюдается, если у меня есть родительский объект с преобразованием translate3d. Я чего-то не вижу? Я пробовал другие варианты webkit-transform, такие как style и transform origin, но мне не повезло.
Я прикрепил JSFiddle с примером, в котором я ожидал, что желтое поле будет в верхнем углу страницы, а не внутри элемента контейнера.
Ниже вы можете найти упрощенную версию скрипки:
#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>
Как заставить translate3d работать с фиксированными дочерними элементами?