Я ломал голову над созданием вертикального выравнивания в CSS, используя следующее
.base{
background-color:green;
width:200px;
height:200px;
overflow:auto;
position:relative;
}
.vert-align{
padding-top:50%;
height:50%;
}
<!-- and used the following div structure. -->
<div class="base">
<div class="vert-align">
Content Here
</div>
</div>
Хотя в этом случае это работало, я был удивлен, что, когда я увеличивал или уменьшал ширину моего базового элемента div, вертикальное выравнивание зависало. Я ожидал, что когда я установлю свойство padding-top, он будет принимать отступ в процентах от высоты родительского контейнера, который в нашем случае является базовым, но указанное выше значение в 50 процентов рассчитывается как процент от ширина. :(
Есть ли способ установить отступы и / или поля в процентах от высоты, не прибегая к использованию JavaScript?
top
отлично работает для изменения размера в зависимости от высоты браузера / окна. Как насчет того, чтобы иметь div под этим div? Как вы можетеclear
2-й div быть под div, который сдвинут внизtop:50%
?