Прежде чем мы начнем:
Пожалуйста, не закрывайте это как дубликат другого вопроса. Я только что искал здесь, в Stackoverflow, не найдя именно этого случая.
Ближе всего я считаю этот вопрос. Тем не менее, приведенные там ответы меня не очень устраивают, я полагаю, потому что абзац установлен position: absolute;.
Это HTML:
<ul>
<li><img src="http://www.placehold.it/300x200" /><p><span>Lorem Ipsum</span></p></li>
</ul>
И CSS:
li {
position: relative;
float: left;
overflow: hidden;
}
img {
width: 100%;
vertical-align: middle;
}
p {
background-color: rgba(255, 0, 0, .3);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
span {
background-color: rgba(0, 255, 0, .3);
vertical-align: middle;
}
Скрипт: http://jsfiddle.net/DpVjZ/
vertical-align: middle; просто смещает текст немного вверх, но не посередине.
Установка интервала position: absolute;, а затем применение top: 50%;, а затем margin-top: -x%; не сработает, поскольку высота интервала неизвестна сама по себе. динамическое содержимое.
Хотя в связанном вопросе говорится, что это плохая практика, я также попробовал подход display: table-cell без каких-либо результатов. Пожалуйста помогите.
dt. - person Sven   schedule 21.01.2013display:block;. Мне кажется, вы подходите к проблеме не с того конца телескопа. Чего вы пытаетесь достичь? Визуально, как это должно выглядеть? Текст должен быть поверх изображения? - person Jezen Thomas   schedule 21.01.2013display: block;ничего не дает для меня, не могли бы вы уточнить это немного подробнее? - person Sven   schedule 21.01.2013