2016-01-22 3 views
0

Я пытаюсь вертикально выровнять div, но по какой-то причине он вообще не работает. Что я делаю не так?Вертикальное выравнивание не работает на div

body { 
 
border: 1px solid red; 
 
height: 500px; 
 
} 
 
#contactUs { 
 
border: 1px solid blue; 
 
vertical-align: bottom; 
 
}
<div id = "contactUs"> Contact Us </div>

Примечание: Я не хочу абсолютных ответов позиционирования.

+0

Что? Он не может работать. '# contactUs' не является встроенным элементом, но он не находится в каком-либо контейнере, просто в' body'. – Hydro

+0

@ TheProHands Является ли тело не контейнером? – jessica

+0

@ TheProHands В любом случае, это не так, так как я просто пытался обернуть внешний div вокруг этого div и попробовал один и тот же css на нем, но с такими же результатами, поэтому он должен быть чем-то другим. – jessica

ответ

3

Вертикальное усилие выравнивания не работает, потому что vertical-align свойство применяется только к инлайн и таблицы клеточных элементов. (See the spec for details.)

Вы можете выровнять #contactus DIV в нижней части содержащего блока (body) с flexbox.

body { 
 

 
    display: flex;    /* convert element to flex container */ 
 
    flex-direction: column;  /* create a vertical alignment for child elements */ 
 
    justify-content: flex-end; /* align child elements at the end of the container */ 
 

 
    border: 1px solid red; 
 
    height: 500px; 
 
} 
 

 
#contactUs { border: 1px solid blue; }
<div id = "contactUs"> Contact Us </div>

Чтобы узнать больше о Flexbox визита:


Обратите внимание, что Flexbox поддерживается всеми основными браузерами, except IE 8 & 9. Некоторые недавние версии браузера, такие как Safari 8 и IE10, требуют vendor prefixes. Чтобы быстро добавить все префиксы, которые вам нужны, разместите свой CSS на левой панели здесь: Autoprefixer.

+0

Да! Наконец-то появился «новый»! Потому что все это хотели! Большой! Можете ли вы прокомментировать все новое, и что именно они делают? – jessica

+0

Я только что нашел проблему. Я не хочу выровнять все дочерние элементы в конце. Только определенные дочерние элементы. В этом случае только один дочерний элемент, а это #contactUs. – jessica

+0

Но обоснование-содержание: flex-end; выравнивает все элементы внизу на корпусе ... – jessica

-2

Если вам нужен только текст «Связаться с нами» по вертикали, вы можете установить высоту линии #contactUs на 500px.

line-height:500px; 
+0

Где в сообщении вы видите слова «выравнивание по центру»? – jessica

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