Какая CSS-фреймворк самая лучшая и стоят ли они затраченных усилий?


106

Читая на другом форуме, я познакомился с миром CSS Framework. Я специально искал BluePrint . Мне было интересно, сталкивался ли кто-нибудь еще с фреймворками CSS, посоветуйте, какие из них лучше, и стоят ли они усилий?

Ответы:


140

«Фреймворки» CSS полностью упускают суть.

CSS не похож на JavaScript, где вы можете включить базовую библиотеку / фреймворк, а затем вызывать из нее функции и объекты для выполнения работы более высокого уровня. Все, что может дать CSS-фреймворк, - это декларативные правила: некоторые вещи по умолчанию для сброса правил браузера, некоторые стили классов, которые должны быть созданы для вашей страницы, и правила макета с использованием 'float' и 'clear'. Вы можете сами написать это в нескольких строках CSS, вместо того, чтобы тянуть за собой сотню рамочных правил.

В частности, «макет сетки» уходит корнями в старые плохие времена, когда вы смешивали презентацию с разметкой. 'div class = "span-24"' не лучше таблицы, вам придется вернуться туда и изменить разметку, чтобы повлиять на макет. И все фреймворки, которые я видел, основаны на плавающих блоках с фиксированными пикселями, что делает невозможным создание жидкого макета, доступного в широком диапазоне размеров окон.

Это обратная разработка, предназначенная только для тех, кто слишком напуган, чтобы писать правила CSS.


14
Значит, вы не видели компаса. Это именно то, что есть. act-as-architect.blogspot.com/2008/11/introduction-compass.html
— Дастин

3
Я согласен. Я использую только сброс css и разрабатываю собственные стили, относящиеся к приложению.
— Hemanshu Bhojak 05

3
Смотрю сейчас на компас, вернее нахальство, или это хамл? Во всяком случае, это безумие. Это достаточно похоже на CSS, чтобы быть таким же сложным для изучения, и достаточно просто не на то, чтобы раздражать, если вы уже знаете CSS.
— AmbroseChapel

11
Sass, Haml и Compass - разные вещи. Haml и Sass обычно работают вместе, Haml позволяет писать html с меньшим количеством разметки, Sass позволяет писать css с меньшим количеством кода, а также использовать константы. Compass - это всего лишь интерпретация Sass популярных фреймворков CSS.
— Сэм Мюррей-Саттон,

2
Я видел, что BluePrint и другие фреймворки не работают в некоторых браузерах. Чем больше у вас опыта работы с CCS, тем больше у вас шансов, что вы будете знать, что нужно изменить, чтобы это работало почти везде. Эти «рамки» только усложняют жизнь неожиданными результатами.
— eugeneK

27

Итак, на этот вопрос еще никто не ответил (хотя я видел несколько положительных отзывов), поэтому Я собираюсь хотя бы попытаться ответить на второй вопрос в этой подсказке.

CSS-фреймворки великолепны; как и любой другой фреймворк, они сокращают время разработки и позволяют сразу же приступить к работе над дизайном для конкретного сайта и CSS. Они думают о трудных решениях, поэтому вам не нужно.

К сожалению, у использования фреймворка есть два недостатка (в целом):

  1. Фреймворк определяет общую структуру и механизм вашего кода CSS. Я не говорю о сбросе CSS (они полезны сами по себе, но не являются настоящими фреймворками); Я говорю о честном и хорошем фреймворке, который уже принял решение о том, какие семантические теги вы собираетесь использовать в своем документе и т. Д. Таким образом, вы становитесь зависимыми от фреймворка, и когда возникает ошибка в рамках, вам, как правило, придется исправить это самостоятельно.

  2. Фреймворки не могут служить оправданием для игнорирования кроссбраузерности / продвинутых проблем CSS. Вы неизбежно столкнетесь с ними, как если бы вы работали с фреймворком PHP или JavaScript. И нужно знать, как с ними бороться. Часто говорят, что сначала нужно написать свой собственный фреймворк, прежде чем использовать чужой.

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


18

Я посмотрел на BluePrint и несколько других, и единственная CSS-структура, которую я рекомендую, - это YUI Grids.

Плюсы:

  • Написано одним из лучших фронтенд-инженеров (ИМО) (Нейт Кочли)
  • Очень маленький. 4 КБ
  • Очень гибкий (1000 различных макетов)
  • Поддерживает макеты с плавной шириной (100%), а также предустановленные макеты с фиксированной шириной 750 пикселей, 950 пикселей и 974 пикселей, а также возможность легкой настройки на любое количество.
  • Поддерживает легкую настройку ширины для макетов с фиксированной шириной.
  • Столбцы шаблонов не зависят от порядка источников, поэтому вы можете разместить наиболее важный контент на первом месте в слое разметки для повышения доступности и поисковой оптимизации (SEO).
  • Самоочищающийся нижний колонтитул. Независимо от того, какой столбец длиннее, нижний колонтитул остается внизу.
  • Макеты менее 100% автоматически центрируются.
  • Несколько семантических имен классов (лучше, чем верхний, левый, правый и т. Д.)

Минусы:

  • Множество дополнительной разметки по сравнению с рукописным HTML и CSS
  • Требуется некоторое обучение, чтобы понять, как создавать сложные макеты.

Как уже писали другие, реальных «фреймворков» для CSS нет. Сброс таблиц стилей также очень помогает с макетом. Я обычно придерживаюсь таблицы стилей сброса и продолжаю оттуда. Но если у вас нет большого опыта работы с CSS, YUI Grids может сэкономить вам время.


16

Compass - это реальный фреймворк CSS в том смысле, что он предоставляет вам не только шаблоны (как YUI, так и blueprint), но также многоразовые конструкции и объявления более высокого уровня, при этом предоставляя вам знакомый синтаксис CSS.


12

Найдите время, чтобы изучить и понять (действительно понять!) Несколько фреймворков CSS, таких как BluePrint и YUI, и сбросить CSS, как Эрик Мейер. Затем найдите время, чтобы собрать свой собственный сброс и / или фреймворк в зависимости от ваших методов работы и типа создаваемых вами сайтов.

Лично я использую большую часть сброса Эрика Мейера с некоторыми собственными классами и сбросами, а также несколько идей из BluePrint и YUI.

Я недавно наблюдал, как Эрик Мейер выступал с презентацией CSS Frameworks, в которой он задал вопрос: «Так какой из них мне подходит?» Затем он ответил на вопрос, показав пустой слайд. Его точка зрения заключалась в том, что, безусловно, есть некоторые полезные концепции, встроенные в большинство сбросов и фреймворков, но лучше всего вам подойдет тот, который вы пишете для себя (оно того стоит).


Хорошие идеи, я займусь этим.
— Мартин Кларк,

Наверное, лучший ответ на данный момент!
— Дэвид Йелл

12

Зачем использовать css 'frameworks'?

  • Если вам не хватает времени.

  • Если вы не знаете css и не знаете кого-нибудь, кто может написать это за вас.

  • Если вы не слишком дорожите стандартами и т. Д.

Я знаю программистов, которые были действительно счастливы использовать blueprint или 960, поскольку он позволяет им создавать макет самостоятельно, не обращаясь к фронтенд-разработчику. Это идеально подходит для личных проектов или стартапов с ограниченными ресурсами.

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

Однако, если вы новичок и вам просто нужно что-то запустить и запустить, вы можете обратиться к фреймворку, поскольку он значительно упрощает базовый макет, а также решает проблему совместимости с браузером.

Сказав все это, многие фреймворки из коробки действительно используют некоторые ужасные имена классов и т. Д. Я знаю некоторые веб-сайты, которые взяли фреймворк в качестве отправной точки, а затем настроили его с помощью своих собственных тегов class и id. Но очевидно, что и с этим переписыванием нужно немного поработать. Использование чего-то вроде Compass, как упоминалось выше, действительно помогает обойти это.

Итак, CSS-фреймворки - они могут сэкономить ваше время за счет семантики. Они также могут повредить вашим знаниям CSS, но это больше зависит от того, сколько вы вкладываете в изучение предмета в целом. Использовать ли вы их - решать вам.


9

Вы должны спросить себя, насколько эффективны доступные фреймворки для решения ваших проблем. Отвечают ли они вашим требованиям?

Используя фреймворк, вы можете установить некоторые правила или детали на уровне пикселей и посвятить остальное время их реализации и производству. Это огромный рост производительности. Если вы обнаружите, что тратите время на корректировку вещей на несколько пикселей в конце проекта (микроуправление дизайном), это признак того, что фреймворк может быть полезен.

Совет № 17 в «Программисте-прагматике» гласит: «Программируйте ближе к проблемной области». Использование слоя абстракции может приблизить вас к решению реальных проблем макета. Например: вы можете сконцентрироваться на улучшении взаимодействия с пользователем за счет дополнительного времени, а не незначительных корректировок пикселей.

Это не означает, что вы должны жертвовать качеством ради количества. Дело в эффективности.

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

Фреймворк не обязательно должен быть какой-то конкретной реализацией CSS. Это не обязательно должно быть что-то раздутое, что вы скачали из интернета, или что-то, реализующее устаревшие идеи. Это просто техника для выполнения работы. Не удивлюсь, если у некоторых программистов уже есть собственные фреймворки, и они даже не знают об этом. Фактически, если вы рассматриваете DOM как набор элементов по умолчанию, расширяемых с помощью CSS, то это структура по определению.


6

На самом деле я потратил большую часть последних 24 часов, исследуя это самостоятельно, хех. Я пришел к выводу, что хороший сброс (я использовал YUI Reset ) и, возможно, что-то еще, чтобы установить базовые параметры ( в моем случае были полезны шрифты YUI ; возможно, «дополнительные вкусности» BluePrint будут в вашем) - хорошая идея. Но «фреймворк» - который обычно представляет собой что-то вроде сеток YUI - слишком ограничен, вынуждая вас использовать их имена классов, идентификаторы и т. Д. И редко вписывается в ваш сайт, как это сделал бы ручной CSS.

Короче говоря: сбросы кажутся довольно хорошими; хорошо устранить все вариации, например, в отношении полей и заполнений для списков, или интервалов между абзацами, или чего-то еще. Но это все, что я могу сказать.


6

Я не использовал его, да, но я думаю, что emastic может быть хорошей альтернативой, которую стоит проверить. он похож на blueprint в области видимости, но также поддерживает эластичные макеты (отсюда и название), и вы можете указывать значения в px, em или% и даже смешивать их.


5

Компас считаю потрясающим. Убедитесь, что вы видите скринкаст .

Я использую 960.gs для нескольких веб-сайтов и считаю его очень простым и легким, и оно того стоит. Экономит мне много работы по верстке. Обязательно проверьте настраиваемый генератор CSS, у которого фиксированная ширина составляет 960 пикселей.



4

Compass позволяет вам переименовывать классы и идентификаторы вашего фреймворка с вашими собственными семантическими именами, так что вы, возможно, захотите проверить это. Он также обеспечивает доступ к тому, чего вы просто не получите с помощью обычного CSS, например миксинам.

Я поражен так называемыми «экспертами по CSS», которые критикуют эти инструменты, даже не вникая в них и не используя их. Они необходимы? Нет. Если вам нравится ваш собственный фреймворк (у вас ведь есть собственный фреймворк, не так ли? CSS-фреймворк - это просто тщательно определенная библиотека - каждый должен его использовать), то непременно продолжайте его использовать. Никто не заставляет вас использовать другие фреймворки, и я не вижу людей, которые используют фреймворки, говорящие пуристам CSS, что они «делают это неправильно».

Критика фреймворков с такой точки зрения просто свидетельствует о незащищенности, а также о невежестве. Например, смехотворно мнение, что человек будет использовать такой инструмент, как Compass, не зная CSS. Вы ведь понимаете, что фреймворк обычно не пишет за вас весь CSS? Вы все еще можете разобраться и написать свой собственный CSS в контексте большинства фреймворков. Фактически, если вы не знаете CSS, вы можете быстро разочароваться.

Для себя я ценю наличие фреймворка, потому что он уже задокументирован, протестирован сотнями других пользователей, и я могу применять свои собственные классы и идентификаторы через Compass. Если мне нужно что-то, для чего фреймворк не подходит, я буду писать код самостоятельно.


3

Мэтт Рейбл из AppFuse некоторое время назад провел конкурс CSS Framework для разработки CSS Frameworks для AppFuse. Результаты опубликованы здесь . Есть несколько вариантов, и я использовал их сам, потому что использую AppFuse и считаю их очень хорошими.

Я должен добавить, что эти CSS Framework хорошо работают, потому что они используются в тематических приложениях. То есть, если вы придерживаетесь правил, то переключение с одного на другое так же просто, как изменение одного значения в файле свойств.


3

Я с большим успехом использовал BluePrint на сайте (я мог бы упомянуть этот сайт здесь, но я уверен, что сообщение будет отмечено как спам!). Я не уверен, буду ли я использовать его в будущем, потому что одна из идей CSS, которую я думал, заключалась в том, чтобы не иметь жестко запрограммированной логики макета. У вас не должно быть элементов css с именами span-24 и span-12 для определения макета, а что-то вроде searchBox и mainContent. По крайней мере, так я это вижу.




3

Единственный известный мне способ использовать структуру CSS и сохранить семантическую разметку - это использовать абстракцию более высокого уровня. На данный момент Compass - единственный, о котором я знаю, достаточно зрелый для использования, но Николь Салливан, похоже, делает кое-что интересное в своем проекте «Объектно-ориентированный CSS».

Я считаю, что умное использование примесей Sass в Compass является блестящим достижением и большим шагом к Святому Граалю поддерживаемой семантической разметки. Я не думаю, что я хотел бы использовать фреймворк, такой как Blueprint или YUI, без абстракции, такой как Compass, чтобы классы представления не попадали в разметку.

Кстати, есть красивый CSS-фреймворк под названием Elastic, который выглядит достаточно хорошо, и я подумываю добавить его в Compass.


2
Некоторое время спустя, подумав об этом дальше: я думаю, что CSS-фреймворки, такие как Blueprint, часто лают не на то дерево. Однако абстракции CSS, такие как Compass, необходимы для серьезной работы по веб-дизайну. CSS слишком ограничен, чтобы действительно достичь того, для чего он был разработан (разделения разметки и представления), без небольшой помощи. Компас предоставляет эту помощь. (Возможно, другие библиотеки тоже, но Compass - единственный, о котором я знаю.)
— Марнен Лайбоу-Козер

1
Еще позже: теперь я считаю, что вам не обязательно нужен компас. Что вам действительно нужно, так это Sass. Абстракции, предоставляемые Sass, чрезвычайно мощны и делают CSS управляемым, как я объяснял в своих предыдущих сообщениях.
— Marnen Laibow-Koser

2

Я считаю, что CSS - это простота. Цель состоит в том, чтобы иметь одно или два места для проверки, когда вы ссылаетесь между HTML и таблицей стилей. Добавление большего количества строк, и особенно строк, которые вы не писали и, вероятно, не так хорошо знакомы, экспоненциально увеличит сложность и, следовательно, изменчивость кода CSS.

Я бы предложил ваши макеты по мере их написания и разработать на их основе общую систему шаблонов. Хотя мне нравится делать CSS более модульным, часто и в зависимости от дизайна ваш CSS может быть очень специфичным для конкретного случая и совсем не модульным.


2

Я использовал Blueprint на нескольких разовых сайтах, и это определенно сэкономило время, в первую очередь при кроссбраузерном тестировании.

Это определенно отстой, добавляя код презентации в разметку, хотя, с другой стороны, он удобочитаем. Хотя мне нравится концепция «вы можете изменить дизайн, не касаясь разметки», если вы создаете сайт, на котором этого действительно не произойдет, и вам просто нужно, чтобы это было сделано вчера, Blueprint - это то, на что стоит обратить внимание.

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


2

Я использовал BluePrint и YUI, но меня всегда разочаровывают некоторые имена, которые они дают своим идентификаторам и классам.

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

Обязательно используйте хорошее соглашение об именах, на всякий случай, если кто-то еще придет отредактировать CSS, тогда они будут иметь хорошее представление о том, к чему относится каждое имя стиля.


2

Крейг,

Compass - это то, что вы ищете: он позволяет вам переименовывать классы CSS Blueprint, например, span-24, с вашими собственными именами. Он также расширяет функциональность CSS с помощью переменных и миксинов. Действительно, те, кто преждевременно судит о фреймворках, не проверив Compass, «упускают из виду». Это похоже на людей, которые много лет назад сказали нам, что мы упускаем из виду суть, используя CSS вместо HTML-таблиц для наших макетов.

-Матт



1

Взгляните на эту демонстрацию: http://www.richstyle.org/demo-web.php Эта структура основана на идее, что «HTML-тегов должно быть достаточно». Я считаю, что возможность повторного использования является наиболее важным фактором при выборе программного компонента, включая веб-фреймворк. Для разработчиков веб-фреймворков, чем больше вы придерживаетесь стандартов, тем больше вы гарантируете возможность повторного использования.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.