#django #bootstrap #angularjs #sass #django_rest_framework
Добрый день! Использую Django + Angular + Django REST.
Необходимо динамически размещать изображения разного размера плиткой, с возможностью
перемещения их посредством drag-n-drop. Для размещения использую сейчас bootstrap.js,
а для перетаскивания
Sortable.js + ng-sortable.js git:://github.com/rubaxa/Sortable.git
Но возникает проблема с картинками разного размера, возникает ситуация подобная этой
А нужно, чтобы было несколько колонок, и каждая картинка могла занимать одну или
несколько колонок, в зависимости от размера картинки.
Что-то вроде этого (представим, что каждый блок - это картинка):
Пример для Susy с их сайта вроде ближе к тому, что должно быть:
Но до конца не уверен, подойдет ли мне этот фреймоворк для решения данной задачи?
Установил sudo gem install sass, sudo gem install susy, pip install libsass. Что
еще нужно установить и как использовать susy для django сайта?
Для Zend фреймворка нашел мануал: http://zencoder.ru/susy/brief-tutorial-susy-2/
Как мне сделать аналогичное для Django? При помощи susy или предложите, пожалуйста,
лучший вариант. По поводу susy не уверен.
Обновление:
Установил еще sudo apt-get install ruby-dev, sudo gem install compass.
Где подключать вот это, и в каком виде для Django?
@import "normalize";
@import "compass";
@import "susy";
Обновление 2:
Установил sudo pip install django-compass2, в settings.py добавил:
COMPASS_INPUT = BASE_DIR + 'media/sass'
COMPASS_OUTPUT = BASE_DIR + 'media/css'
COMPASS_STYLE = 'compact'
COMPASS_REQUIRES = (
'ninesixty', # 960.gs Grid System
)
и 'djcompass' в INSTALLED_APPS.
Создал папки media/sass, media/css
При выполнении python manage.py compass
не находит модуль 'djcompass'.
Обновление 3:
пока закомментировал djcompass в INSTALLED_APPS.
Добавил в settings.py:
COMPRESS_PRECOMPILERS = (
('text/scss', 'sass --scss {infile} {outfile}'),
)
В шаблоне:
{% load compress %}
{% load staticfiles %}
{% compress css %}
{% endcompress %}
Ругается: 'compress' is not a valid tag library
Гугл говорит, что нужно сделать что-то вроде
compass create [folder] -r rest-foundation --using foundation
Но compass мне не удалось настроить.
И не совсем понятно, для susy/compass/sass необходимо создавать отдельный проект
внутри проекта django? Пока не понимаю, как их всех вместе скрестить, чтобы работало:
Django + Django REST + Angular + SASS + Compass (и непонятно, можно ли обойтись без
него?) + Susy.
Обновление 4:
sass -v выдает Sass 3.4.18 (Selective Steve)
Установил pip install django-compressor
на основе этого http://django-compressor.readthedocs.org/en/latest/quickstart/
В settings добавил
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# other finders..
'compressor.finders.CompressorFinder',
)
Добавил в INSTALLED_APPS "compressor" - после этого 500 ошибка.
При добавлении в TEMPLATES OPTIONS
django.templatetags.compress и django.contrib.staticfiles.templatetags.compress пишет,
что у таких модулей нет "compress" attribute/class
Обновление 5: нашел angular-gridster.js, который размещает вроде как нужно, + поддерживает
drag-n-drop http://manifestwebdesign.github.io/angular-gridster/?utm_source=angular-js.in&utm_medium=website&utm_campaign=content-curation
На этапе до sass/susy/compass:
bower install angular-gridster
Обновление 6
Подключил по мануалу на сайте разработчика, все работает. Единственная проблема -
как настроить angular-gripster, чтобы убрать z-слои и наложение изображений друг на друга?
Ответы
Ответ 1
Я бы подключил masonry. И в "бутстрапе", и в "susy", проблемы выравнивания блоков с разной высотой есть и будут. А "masonry" справится. Также рекомендую по возможности избавиться от "compass" - он перестал активно развиваться пару лет назад. Если нужна альтернатива - попробуйте bourbon.
Комментариев нет:
Отправить комментарий