У меня есть div с H1 и абзацем внутри него. Задача состоит в том, чтобы центрировать абзац вертикально.
<div id="id1">
<h1>Header</h1>
<p>paragraph</p>
</div>
Я использую:
#id1
{
position: relative;
width: 250px;
height: 250px;
border-radius: 125px;
background: #000;
color: #f00;
}
#id1 h1
{
position: relative;
margin: 0;
padding: 0;
text-align: center;
top: -50px;
}
#id1 p
{
position: relative;
display: table-cell;
vertical-align: middle;
top: -37px;
margin: 0;
padding: 0;
text-align: center;
height: 250px;
width: 250px;
border-radius: 125px;
background: #fff;
color: #000;
}
Он работает в большинстве новых браузеров (даже IE8), но не в FF. Я думаю, проблема связана с относительным положением H1 и P. Но не уверен. Помоги мне, пожалуйста!
Если вы сделаете h1
абсолютно позиционированным, а затем удалите относительное позиционирование из p
он, похоже, работает нормально. Дайте ширину h1
100%, чтобы текст снова центрировался.
#id1 {
position: relative;
width: 250px;
height: 250px;
border-radius: 125px;
background: #000;
color: #f00;
}
#id1 h1 {
position: absolute;
margin: 0;
padding: 0;
text-align: center;
top: -50px;
width: 100%;
}
#id1 p {
display: table-cell;
vertical-align: middle;
top: -37px;
margin: 0;
padding: 0;
text-align: center;
height: 250px;
width: 250px;
border-radius: 125px;
background: #fff;
color: #000;
}
Ваш тег h1 содержит текст, а FF добавляет высоту текста в заголовок. Попробуйте удалить текст, см. [Здесь] [http://jsfiddle.net/G3av6/3/]