Я хочу отобразить коллекцию миниатюр изображений в сетке. Изображения будут иметь разные размеры, но я бы хотел ограничить эскизы определенным размером (скажем, 200px
wide и 150px
tall).
То, что я хотел бы найти, - это волшебная HTML-разметка и правила CSS, которые будут
- Разрешить включение изображений в обычные элементы
<img>
- Убедитесь, что миниатюры помещаются в их квадрат размером 200x150 пикселей, сохраняют их пропорции и центрируются в зависимости от того, какой размер они переполняют.
- Не требуется JavaScript или конкретные знания о фактических размерах каждого изображения.
Я не уверен, что это возможно. Я могу сделать (плохое) приближение того, что хочу, со следующей разметкой:
<div class="thumb">
<img src="360x450.jpeg">
</div>
и CSS:
.thumb {
width: 200px;
height: 150px;
overflow: hidden;
}
.thumb img {
min-width: 200px;
min-height: 150px;
width: 200px;
}
Эта попытка ломается различными способами:
-
Изображения, которые находятся в портретной ориентации, будут правильно отсортированы, но будут переполняться через нижнюю часть контейнера, что приведет к обрезке по вертикали и по центру.
-
Изображения, которые являются широкими и короткими, будут искажены в горизонтальном измерении из-за жестко закодированных правил
width
иmin-height
. -
Но без этого жестко закодированного
width
изображения, размер которых больше минимальной высоты и ширины, не будут вообще изменены.
Если это вообще полезно, я приведу пример, который (надеюсь) иллюстрирует то, что я пытаюсь сделать, здесь:
Я знаю, что могу решить эту проблему, вообще опуская элемент <img>
и вместо этого вытягивая миниатюры в виде центрированного фонового изображения на содержащем элементе, но, если это возможно, я хотел бы сохранить <img>
элементов на странице.
Спасибо за любую помощь или указатели, которые вы можете предоставить!
Изменить: Я полагаю, что идеальное решение будет работать в IE 6+ и современных браузерах, но любое решение, которое работает в IE 9+ и других современных браузерах (последние WebKit, Gecko, и т.д.) будут с радостью приняты.