Подтвердить что ты не робот

Центрировать тег H1 внутри DIV

У меня есть следующий DIV внутри тега body:

<div id="AlertDiv"><h1>Yes</h1></div>

И это их классы CSS:

#AlertDiv {
    position:absolute;
    height: 51px;
    left: 365px;
    top: 198px;
    width: 62px;
    background-color:black;
    color:white;
}

#AlertDiv h1{
    margin:auto;
    vertical-align:middle;
}

Как выровнять по вертикали и по горизонтали H1 внутри DIV?

AlertDiv будет больше, чем H1.

4b9b3361

Ответ 1

Вы можете добавить line-height:51px в #AlertDiv h1, если знаете, что это будет только одна строка. Также добавьте text-align:center в #AlertDiv.

#AlertDiv {
    top:198px;
    left:365px;
    width:62px;
    height:51px;
    color:white;
    position:absolute;
    text-align:center;
    background-color:black;
}

#AlertDiv h1 {
    margin:auto;
    line-height:51px;
    vertical-align:middle;
}

В приведенной ниже демо также используются отрицательные поля, чтобы поддерживать #AlertDiv по центру на обеих осях даже при изменении размера окна.

Демо: jsfiddle.net/KaXY5

Ответ 2

Существует новый способ использования преобразований. Примените это к элементу к центру. Он подталкивает половину высоты контейнера, а затем "исправляет" половину высоты элемента.

position: relative;
top: 50%;
transform: translateY(-50%);
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);

Он работает большую часть времени. У меня была проблема, когда div находился в div в li. Элемент списка имел установленную высоту, а внешний div составлял 3 столбца (Foundation). 2-й и 3-й столбцы div содержали изображения, и они сфокусировались на этом методе очень хорошо, однако в заголовке в первом столбце нужен оберточный div с явным набором высоты.

Теперь, кто-нибудь знает, работают ли люди CSS на пути к выравниванию, например, легко? Увидев, что его 2014 год и даже некоторые из моих друзей регулярно пользуются Интернетом, я задавался вопросом, считал ли кто-нибудь, что центрирование будет полезной функцией стилизации. Только тогда мы?

Ответ 3

В теге hX

width: 100px;
margin-left: auto;
margin-right: auto;

Ответ 4

<div id="AlertDiv" style="width:600px;height:400px;border:SOLID 1px;">
    <h1 style="width:100%;height:10%;text-align:center;position:relative;top:40%;">Yes</h1>
</div>

Вы можете попробовать код здесь:

http://htmledit.squarefree.com/

Ответ 5

Начнется jsFiddle здесь.

Кажется, что горизонтальное выравнивание работает с text-align : center. Все еще пытаюсь заставить вертикальное выравнивание работать; возможно, придется использовать позиционирование absolute и что-то вроде top: 50% или предварительно вычисленное padding сверху.

Ответ 6

Вы можете добавить дополнение к h1:

#AlertDiv h1 {
  padding:15px 18px;
}

Ответ 7

Вы можете использовать display: table-cell, чтобы отобразить div как ячейку таблицы, а затем использовать vertical-align, как вы делали бы в обычной ячейке таблицы.

#AlertDiv {
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}

Вы можете попробовать его здесь: http://jsfiddle.net/KaXY5/424/