2015-11-06 2 views
1

Я хотел бы центрировать выравнивание текста как по вертикали, так и по горизонтали внутри этого div. Таким образом, он имеет равную надпись сверху и снизу.Как центрировать выравнивание текста в div

Как это сделать с моим текущим кодом? мой Fiddle: http://jsfiddle.net/hr2aLrc0/

<div style="height:300px;background:url('http://placehold.it/600x300') 0 0 no-repeat;background-size:cover"> 
 
    
 
    <h1>Your Title</h1> 
 
    <p>Title<br />Description</p> 
 
    
 
</div>

+1

Правильное вертикальное выравнивание является одним из давнишних недостающих компонентов с помощью CSS. См. [Эту страницу] (http://www.jakpsatweb.cz/css/css-vertical-center-solution.html) для обходных решений. – Phylogenesis

ответ

1

Это стандартный вопрос так сомнение, что там нет дубликатов. ;-)

Расширьте стиль/класс с text-align: center;

<div style="text-align: center; height:300px;background:url('http://placehold.it/600x300') 0 0 no-repeat;background-size:cover"> 

    <h1>Your Title</h1> 
    <p>Title<br />Description</p> 

</div> 

Вертикальное выравнивание не так просто.

Это может быть сделано с помощью java-скрипта или если вы оберните свой div в position: absolute стилизованным div с top: 0px и bottom: 0px;. Затем вы можете использовать margin-top: auto; margin-bottom: auto; height: ???px для центрирования внутреннего div.

<div style="position: absolute; top: 0; bottom: 0; left:0; right:0; height: auto; width: auto;"> 
    <div style="margin-top: auto; margin-bottom:auto; text-align: center; height:300px;background:url('http://placehold.it/600x300') 0 0 no-repeat;background-size:cover"> 

    <h1>Your Title</h1> 
    <p>Title<br />Description</p> 

    </div> 
</div> 
+0

Хорошая точка в дубликатах. Я нашел это, которое больше похоже на то, что мне нужно: http://jsfiddle.net/CtH9k/ – michaelmcgurk

+1

Да, эта скрипка тоже будет работать. Но я не уверен, что он будет работать с тегами H1. Но это возможно, и тогда это будет хорошим решением. Мне был изменен мой ответ, чтобы показать вам другой путь. –

1

Попробуйте это:

div { 
 
    width: 250px; 
 
    height: 100px; 
 
    line-height: 100px; 
 
    text-align: center; 
 
}
<div style="height:300px;background:url('http://placehold.it/600x300') 0 0 no-repeat;background-size:cover"> 
 
    
 
    <h1>Your Title</h1> 
 
    <p>Title<br />Description</p> 
 
    
 
</div>

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