Я, конечно, не хочу добавлять в кучу вопросов CSS вертикальное выравнивание, но я часами пытался найти решение, но пока безрезультатно. Вот ситуация:
Я создаю галерею слайд-шоу изображений. Я хочу, чтобы изображения отображались настолько большими, насколько позволяет окно пользователя. Итак, у меня есть этот внешний заполнитель:
<section class="photo full">
(Да, я использую элементы HTML5). Который имеет следующий CSS:
section.photo.full {
display:inline-block;
width:100%;
height:100%;
position:absolute;
overflow:hidden;
text-align:center;
}
Далее изображение помещается внутрь него. В зависимости от ориентации изображения я устанавливаю ширину или высоту на 75%, а для другой оси - на авто:
$wide = $bigimage['width'] >= $bigimage['height'] ? true: false; ?>
<img src="<?= $bigimage['url'] ?>" width="<?= $wide? "75%" : "auto"?>" height="<?= $wide? "auto" : "75%"?>"/>
Итак, у нас есть внешний контейнер с жидкостью, внутри которого изображение жидкости. Горизонтальное центрирование изображения работает, но я не могу найти способ вертикально центрировать изображение внутри его контейнера. Я исследовал методы центрирования, но большинство полагает, что контейнер или изображение имеют известную ширину или высоту. Затем есть метод display: table-cell, который мне тоже не подходит.
Я застрял. Я ищу решение CSS, но я тоже открыт для решений js.