2016-09-01 1 views
2

Как вертикально выровнять дочерний элемент с родителем с динамической высотой.Вертикально выровнять дочерний элемент div с родительским div с динамической высотой

код CSS:

parent{ 
    height: 400px; 
} 
.child{ 
    position:relative; 
    top:50%; 
    transform: translateY(-50%;); 
} 

Это устанавливает ребенок один раз, то не меняется. Как изменить его так, чтобы он менялся с динамической высотой родителя?

+0

это может, помогает - https://jsfiddle.net/oe5g1sxc/ –

ответ

3

Вы можете использовать display: flex.

.parent { 
 
    display: flex; 
 
    justify-content: center; 
 
    align-items: center; 
 
    height: 100px; 
 
    width: 100px; 
 
    margin: 1em; 
 
    background-color: tomato; 
 
} 
 

 
.child { 
 
    width: 10px; 
 
    height: 10px; 
 
    background-color: yellow; 
 
} 
 

 
You can use `displa: flex`. 
 

 
The following doesn't rely on parent's height.
<div class="parent"> 
 
    <div class="child"> 
 
    </div> 
 
</div>

+0

не использовать гибкий. flex имеют различные проблемы в браузерах, использующих this-https://jsfiddle.net/c1rk2q37/ –

+0

Это решение супер хаки. В чем проблема с гибкой коробкой? Он поддерживается [довольно хорошо] (http://caniuse.com/#feat=flexbox) и работает в этом простом случае во всех основных браузерах. –

+1

@ Lazar ... супер прохладный link .. – Optimus

Смежные вопросы