Рельсы + компас: преимущества против использования haml + blueprint напрямую

У меня есть опыт использования haml (+ sass) в проектах rails. Я недавно начал использовать их с blueprintcss - единственное, что я сделал, это преобразовать файл blueprint.css в sass файл и начать кодирование оттуда. У меня даже есть rails generator, который включает все это по умолчанию.

Кажется, что Compass делает то, что я делаю, и другие вещи. Я пытаюсь понять, что это за другие вещи, но документация/учебники были не очень ясными.

Вот мои выводы:

  • Компас поставляется с встроенными sass mixins, которые реализуют общие идиомы CSS, такие как ссылки с значками или горизонтальными списками. Мое решение не дает ничего подобного. (1 балл для компаса).
  • Компас имеет несколько опций командной строки : вы можете создать проект рельсов, но вы также можете "установить" его на существующий проект рельсов. Полагаю, генератор рельсов может быть персонализирован, чтобы сделать то же самое. (Рулевой).
  • Компас имеет два режима работы с планом: "основное" и "семантическое" использование. Я не понимаю о различиях между ними. С генератором рельсов у меня есть только один режим, но это кажется достаточно. (Рулевой)
  • По-видимому, Compass готов использовать другие фреймворки, помимо чертежа (например, YUI). Я не мог найти много документации об этом, и мне все равно это не интересно - план подходит для меня (Tie).
  • Кривая обучения Compass выглядит немного жесткой, и документация кажется скудной. Обучение может быть немного сложным. С другой стороны, я знаю все входы и выходы своей собственной системы и могу сразу ее использовать. (1 балл для моей системы).

При таком анализе я не решаюсь попробовать Compass.

Правильно ли мой анализ? Я пропущу какие-либо ключевые моменты, или я неправильно оценил любой из этих пунктов?

Ответы

Ответ 1

Компас выглядел как отличное решение для меня, но, попробовав его в проекте, я действительно не видел большого преимущества использования его для меня. Как и вы, я в порядке с планом, и я не видел необходимости добавлять еще один слой поверх haml/sass.

В конце концов я удалил компас из этого проекта и просто пошел с sass-версией синтаксических CSS файлов и оттуда. Я сохраняю любые пользовательские/дополнительные стили в отдельном файле sass и что он. Нет необходимости в компасе или что-то в этом роде, если вы просто хотите сохранить его простым.

Ответ 2

Идеальной целью является разделение стиля и содержания: это не всегда возможно на 100%, но это можно сделать достаточно хорошо, используя семантическую разметку. Blueprint и другие рамки CSS полностью терпят неудачу при этом.

Первоначальная идея Compass заключалась в том, чтобы избежать загрязнения HTML с визуальной разметкой, которую генерирует Blueprint: если вы пишете class="column-4" в своей разметке, тогда вместо этого вы можете поставить style="width:160px". Семантически это то же значение, и то же количество повторений для поддержания.

Компас превращает класс Blueprint, такой как .column-4 в mixin, который вы можете применить к содержательному селектору:

#sidebar
  +column(4)

Таким образом, вам нужно только сохранить его в таблице стилей, а не по нескольким шаблонам и файлам HTML.

Компас осведомлен о проекте. Он будет обрабатывать компиляцию всего дерева таблиц стилей, даже автоматически при сохранении при запуске compass watch.

Есть несколько очень полезных функций, предоставляемых компасом, например:

image_url - конфигурируемая функция, которая может обрабатывать относительные или абсолютные пути или даже настроить вращающиеся хосты ресурсов, если вам нужно.

Модуль CSS3 выполняет все правила стиля браузера для закругленных углов, теней и т.д.

Общие утилиты предоставляют помощники для всего, что вы делаете все время, но с меньшим количеством повторений (особенно для проблем с браузером). Вот некоторые из основных, которые я использую много:

  • + clearfix и + pie-clearfix (методы очистки в разных браузерах)
  • + float гарантирует, что вы не забудете отображение: inline перед ним для IE... (если придет время отказаться от старых IE, это одно единственное изменение.)
  • + replace-text скрывает текст и позиционирует фон замены изображений.
  • + hover-link добавляет правило подчеркивания: hover к стилю базовой ссылки

Вы можете проверить их на новом сайте docs для Compass.

Затем Compass предоставляет средства для ряда других фреймворков стиля в дополнение к встроенному Blueprint. Например, посмотрите Susy, который является основанной на Sass компоновкой макета, а не только портом CSS. Он специализируется на гибких и жидких сетках.

Ответ 3

"Семантический режим" относится к возможности использовать больше семантических имен классов, чем те, которые используются в css frameworks:.article vs .grid_1. который я лично считаю большим +.

Ответ 4

Я не уверен, появились ли эти ресурсы только недавно, но вы видели помощники Compass CSS3 и Общие утилиты - (оба хорошо задокументированы на мой взгляд) - они действительно ускорили мой интерфейс.

Другим важным ресурсом является Страница плагинов Compass.

Лично мне нравится копировать эти служебные файлы Sass из rubygem и вручную включать их в мои файлы проекта Sass, поскольку это выглядит довольно странно, ссылаясь на Sass, который хранится вне проекта.