Я хочу центрировать неизвестную длину текста (нормально он ограничен определенным размером, но я не знаю, нужна ли ему одна строка или две строки) внутри div. Поэтому я не могу использовать line-height
. Я пытался использовать display: table-cell
, но макет был уничтожен. Я не могу использовать некоторые трюки с top
, потому что мне нужно это для позиционирования.Вертикально центр неизвестной длины текста внутри div
Mockup:
Оригинальный код:
HTML:
<div class="background"> </div>
<div class="TileText">MyText - Another long, long, long text</div>
CSS:
.background{
background-color:#000;
height: 400px;
width: 100%;
}
.TileText{
position: relative;
top: -135px;
max-width: 200px;
height: 80px;
background-color: #FFF;
color: #black;
clear: both;
padding-left: 10px;
}
Текущее состояние:
HTML:
<img src="images/castle.png" width="300" height="333" title="Castle" alt="Castle" />
<div class="TileTextWrapper">
<div class="TileText">Text</div>
</div>
CSS:
.TileTextWrapper{
position: relative;
top: -135px;
max-width: 200px;
height: 80px;
background-color: #FFF;
color: #57abe9;
clear: both;
padding-left: 10px;
display: table;
}
.TileText{
display: table-cell;
vertical-align: middle;
}
Обновление:
Теперь текст выровнен по вертикали. Но я боюсь, что display: table
будет работать только с современным браузером.
Browser Совместимость 'display' собственности: http://reference.sitepoint.com/css/display#compatibilitysection –
Этот метод центрирования с дисплеем: стол, безусловно, работать в IE8 и выше. –
Ознакомьтесь с http://css-tricks.com/centering-in-the-unknown/. Хорошо работает, и если вы хотите, чтобы он работал со старыми браузерами, вам просто нужно добавить элемент в код вместо использования ': before'. – Michael