• Как придумать алгоритм вывода постов нестандартной сеткой?

    IGreench
    @IGreench
    Software Developer
    Здравствуйте.

    Все варианты имеют место в решении задачи. Однако, нужно понять, чего вы хотите.

    • Все ли строки сетки должны быть заполненными?
    • Насколько важен порядок постов?
    • Можно ли менять размер поста, чтобы он органичнее входил в сетку?
    • Насколько "свободными" могут быть действия пользователя?


    Вообще, подобные ресурсы делают адаптивный дизайн. Как же решается эта задача? Просто делают float-блоки со статическими размерами (Вот хорошая статья на тему: www.artlebedev.ru/tools/technogrette/html/thumbnails/) и указывают у каждого поста требуемый стиль, задающий ширину. Например, у the-village есть CSS стили "post-block-superfeature-content" и "post-block-featured". А также, у них есть CSS классы на высоту поста. Проблема первого варианта решается пустой ячейкой в "сетке". Почему в "сетке"? Потому что явной сетки там нет.

    Но представим, что идеальным решением задачи является то, в котором алгоритм автоматически компонует посты и пользователь может изменять сгенерированную сетку, причём так, чтобы не поломать вёрстку.

    Предлагаю некоторый "Вариант 5", в котором алгоритм компонует посты в соответствии с размером и приоритетностью постов. Сначала отображаются посты с более высоким приоритетом, и если пост не влазит в ячейку, то заполняем ячейку сетки постом с меньшим приоритетом. Если таких постов нет, то оставляем пустую ячейку.

    Если нужны заполненные все строки сетки, то тут две ситуации. В первой ситуации у нас статическое число постов, а значит их можно статически заранее расставить для статической или динамической ширины сетки. Вторая ситуация - это динамическое число постов. Тут можно просто не указывать неполную строку.

    Про реализацию.


    На этом всё. Желаю удачи с решением задачи ;)
    Ответ написан