Удивление, если у кого есть решение для этого.
Я хотел бы представить архив миниатюрных изображений, старейших в нижней и новейшей версиях. Мне также хотелось бы, чтобы поток был полностью отменен … что-то вроде этого:
Страница должна быть выровнена по правому краю, а будущие изображения добавлены в верхнюю часть страницы. Я динамически создаю страницу с помощью PHP, вытаскивающего имена файлов изображений из базы данных MySQL. Ловком здесь я бы хотел, чтобы этот макет был жидким, а это означает, что большинство трюков PHP для подсчета изображений и построения HTML соответственно выходят из окна.
Есть ли способ сделать это с помощью Javascript или даже с CSS?
См .: http://jsfiddle.net/thirtydot/pft6p/
Это использует float: right
упорядочивать div
s по мере необходимости , а затем transform: scaleY(-1)
переворачивает весь контейнер и, наконец, transform: scaleY(-1)
снова переворачивает каждое отдельное изображение назад .
Он будет работать в IE9 и выше, и все современные браузеры.
CSS:
#container, #container > div { -webkit-transform: scaleY(-1); -moz-transform: scaleY(-1); -ms-transform: scaleY(-1); -o-transform: scaleY(-1); transform: scaleY(-1); } #container { background: #ccc; overflow: hidden; } #container > div { float: right; width: 100px; height: 150px; border: 1px solid red; margin: 15px; font-size: 48px; line-height: 150px; text-align: center; background: #fff; }
HTML:
<div id="container"> <div>1</div> <div>2</div> <div>3</div> .. </div>
Модуль CSS Flexible Box был создан для этого типа вещей. См. Быстрый пример, который я взбивал: http://jsfiddle.net/c6QLC/2/ (посмотрите на это в Firefox)
Теперь плохая новость: пока вы не можете на нее положиться. Реализация не только спецификации, но и текущая реализация не поддерживает box-lines
(которые я включил в пример), что позволит элементам быть в нескольких строках, а не переполняться.
Новая спецификация записывается в dev-версии некоторых браузеров, так что это произойдет. Это вопрос времени.
Тем временем, возможно, что-то вроде Изотопа может соответствовать вашим потребностям.
Если вы хотите проверить спецификацию, вы можете найти ее здесь: http://www.w3.org/TR/css3-flexbox/
Это можно решить с помощью плагина jquery masonry. Это немного похоже на изотоп, но бесплатно для частных и коммерческих пользователей.