У меня есть позиционирован относительно figure
с изображением в следующим образом:Вертикально центр содержания в DIV, где размеры устанавливаются изображения
<figure>
<img src="image.jpg" width="100%" />
</figure>
figure {
position: relative;
display: block; }
figure
берет его высота от изображения. Теперь, скажем, я добавляю абсолютно позиционированный контент в figure
, который будет сидеть поверх изображения. Содержимое не имеет установленной высоты и может быть многострочным. Я обычно делают такие вещи, как это:
<figure>
<img src="image.jpg" width="100%" />
<figcaption>
<span>Lorem ipsum dolor sit amet, consectetur adipiscing elit</span>
</figcaption>
</figure>
figure {
position: relative;
display: block; }
figcaption {
position: absolute;
display: table;
top:0; right:0;
bottom:0; left:0;
width:100%; height:100%; }
figcaption span {
display: table-cell;
vertical-align: middle; }
Однако, несмотря на figcaption
со 100% высоты и ширины, а также все 4 позиционирований установлено в 0, это еще не заполнит всю фигуру, то есть вертикальная центрирование не работает.
Есть ли способ сделать figcaption
взять высоту 100%, когда figure
занимает высоту от изображения внутри? Или есть другой способ вертикально сосредоточиться в этой ситуации?
ли какие-либо из этих ответов помочь? http://stackoverflow.com/questions/5703552/css-center-text-horizontal-and-vertical-inside-a-div-block/25799339#25799339 –
'Однако, несмотря на то, что figcaption имеет 100% высоту и ширину, плюс все 4 позиционируется в 0, он все равно не заполняет всю фигуру, что означает, что вертикальное центрирование не работает. «Потому что нет установленной высоты. – Ruddy
@ Ruddy да, но если я изменю цифру на 'display: block', это более чем счастливо взять 100% высоту и ширину. – Coop