CSS группа / отображать изображения по соотношению сторон

Мне нужна помощь с кодом CSS. Я работаю на фото-сайте WordPress, и у меня есть некоторые проблемы с отображением моих фотографий. Отображаются 2 формата изображений: пейзаж (1200 x 800 пикселей) и портрет (595 x 853 пикселей). Я хочу сгруппировать высокие 2 в ряду, потому что они выглядят намного лучше. У меня есть около 40-50 изображений на пост.

Есть какой-либо способ сделать это?

Я приложил демо о том, как бы я хотел, чтобы результат был.

Спасибо!демонстрационный макет

2 ответа

Это зависит от того, насколько динамичны ваши сообщения. Если у вас есть способ узнать структуру вашего HTML + CSS + контента заранее, тогда вы можете создать .tall-row класс для высоких изображений и .long-row класс для длинных изображений. И это в основном планирование макета заранее. Вы можете легко сделать это, используя традиционный CSS, CSS FlexBox (новее) или CSS Grid (новее).

Если порядок изображений будет каким-то динамическим (поэтому вы не знаете, когда будет отображаться высокое изображение или когда будет длинное изображение), вы можете попробовать CSS Grid'd. grid-auto-flow: dense; свойство, которое пытается рассчитать наилучшее общее соответствие для всех его детей. Только если это не сработает, я бы предложил использовать плагин JS или jQuery.

Вот пример CSS Grid grid-auto-flow: dense; https://jsfiddle.net/40p0q5xx/

Вы можете использовать плагин jQuery, такой как Masonry или Isotope, чтобы сделать это - они предназначены для размещения ваших элементов в сетке так, чтобы они хорошо подходили друг к другу.

Вам все еще нужно будет установить некоторые HTML и CSS перед добавлением плагина, чтобы отрегулировать положение изображений, поэтому вам придется поработать с документацией или примерами плагина (или предоставить фрагмент кода).

Другие вопросы по тегам