У меня есть фотогалерея с фотографией, которая должна отображать фотографии в трехколоночном макете. Каждое изображение будет иметь одинаковую ширину (т. Е. Ширину столбца), но поскольку соотношение сторон изменяется, равно как и его высота. Изображения находятся в полуслучайном порядке, поэтому порядок отображения (заполнение строк или столбцов) не имеет значения.Многоколоночная фотогалерея
Я попытался установить это как макет CSS многоколоночным:
#gallerycontainer {
-webkit-column-count: 3;
-webkit-column-gap: 8px;
-moz-column-count: 3;
-moz-column-gap: 8px;
column-count: 3;
column-gap: 8px;
}
Когда все загружается, это соответствует тому, что я хочу для того чтобы достигнуть. Проблема заключается в фазе загрузки: при одном изображении после загрузки и, следовательно, изменении на правильную высоту общая высота содержимого #gallerycontainer
изменяется после каждой загрузки изображения, и поэтому изображения часто перераспределяются между столбцами, вызывая раздражающее Визуальный эффект. Я думаю, что я смогу избавиться от этого, установив конкретную высоту и ширину img
s при создании страницы на PHP. Однако я не знаю, какова будет их ширина отображения (ширина #gallerycontainer
и, следовательно, столбцов зависит от ширины окна браузера), поэтому я не могу явно установить эти значения.
Есть ли какой-либо CSS-трюк, чтобы иметь каждое изображение в правом столбце еще до его загрузки?
Примечания: Я хочу, чтобы это работало с минимальным Javascript, насколько это возможно, и особенно без внешних фреймворков или наборов, поэтому масонство здесь не вариант. Кроме того, у меня есть рабочее «мошенничество» (см. Ниже), я в основном ищут лучшие способы решения этой проблемы и в то же время документирую свое решение, если у кого-то другая проблема.