Smarter Сетки с Sass And Сюзи

Если вы дизайнер, вы будете знать, что сетки ваш friends.

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

Я твердо выступает за проектирование с browser: прототипирования с HTML и CSS имеет много очевидных преимуществ над статическим привилегии Photoshop, которые имеют меньшую ценность для гибкой сети.К сожалению, HTML, CSS и сетки не являются естественными Bedfellows: прогрессирование веб-стандартов на протяжении многих лет была не хватает в этой области, что означает, мы должны бороться с floats (которые никогда не были предназначены для использования таким образом) иclearfixes — не идеально, если вы хотите, чтобы тратить меньше времени отладки макета и больше времени разработке опытом .

Относительно новая реализация flexbox и CSS Grid Layout модулей на пути, чтобы освободить нас от ограничений поплавков и позволит нам создать некоторые довольно интересные макеты — который я взволнован — но они неМагическая пуля.Даже с теми,, кодирование до макета еще может быть длительным процессом для дизайнера, и требуют, чтобы вы помнили кучу не очень интуитивным свойств .

К счастью, много инструментов в настоящее время существуют, чтобы вы могли быстро разрабатывать сетки для Интернета, от рамок CSS, как Bootstrap __15 | | 1__14 | и __19 Foundation __21 | | 2__14 ,такие сайты, как Отзывчивый Сетка System __27 | | 3__14 .Тем не менее, структуры имеют свои недостатки, такие как требуя, чтобы добавить большое количество классов для вашей разметки и доставки раздутый коде, которые могут быть плохо для работы .

К счастью для нас, существуют решения проблемы создания быстрой, гибкой, полностью настраиваемые сетки: Susy __35 | | 4__14 является Сасс основе сетки framework.Это очень легкий и позволяет создавать полностью настраиваемые сетки в CSS, не касаясь разметку .

Сузи была разработана Эриком М. Сюзанной, при поддержке Крис Eppstein — создатель Компас и соавтором Сасс — так что это очень хорошо поддерживается в обществе Сасс, и это быстро набирает популярность .

Рамочная или нет

Я, как правило, относятся к Сюзи, как | framework__48, но это может быть более точным назвать это сетки system.В отличие от более традиционных рамок, Сузи не требует, чтобы добавить классов в HTML elements.Сузи полностью написана в СКС файл, добавив Mixins и функции, с помощьюзапросы средств массовой информации, чтобы настроить раскладку на ваших собственных указанных точек останова.Это позволяет сохранить содержание и стиль полностью отдельный — не важно все время, но широко рассматривается в качестве наилучшей практики .

Прежде, чем мы продолжим, я должен отметить, что Сюзи не только решение: Дзен Grids 5 Джон Альбина и Jeet __10 | 6 КориСиммонс два других. Singularity 7 также довольно интересно рамки, которая работает в подобной дороге к Сюзи, используя Sass Mixins вместо добавления классов в HTML.Тем не менее, Сюзи имеет растущее сообщество и полезную документацию, что делает его хорошим выбором для начала работы с .

Advantages

Почему может вы хотите использовать Сюзи в вашем следующем проекте?Есть несколько преимуществ:

  1. (Относительно) Легко Learn
    Если вы использовали другие механизмы (например Bootstrap или фонда), и если вы знакомы с Sass вообще, Сюзи не должно быть слишком трудно для вас, чтобы забрать,Даже если вы достаточно новое для Sass, Сюзи не требуют глубокого знания и отличный способ, чтобы начать!Примеры в этой статье предполагают знание Sass, так что стоит читать вверх немного, если вы не знакомы .
  2. Ускорить ваш Workflow
    В отличие от многих других структур, Сюзи не приходит с кучей по умолчанию стиль, который вам нужно переписать.На самом деле, Сюзи не имеет стиль: это чисто Система компоновки сетки.Его целью является сделать математику для Вас — что-нибудь еще для вас, чтобы добавить.После того, как вы знакомы с несколько Mixins Susy, вы найдете это будет вам сэкономить время и избавить вас до сконцентрироваться на дизайне .
  3. Используйте как много или как мало, как вы Like
    Как с Sass, вы можете выбрать то, что работает для вас.Мы сосредоточимся на нескольких довольно простых примеров, но вы можете использовать Сюзи, чтобы сделать некоторые довольно сложные вещи, если вы так склонны

Я должен также отметить, что в то время как Сузи настоящее время опирается на традиционные floats позиционировать свой сетку, документация указывает, что flexbox и макет сетки CSS вполне может быть предстоящее, которые сделают его еще более мощным

Получение Started

Сузи была разработана для работы с Compass __52 | 8 , так что если у вас уже есть компас установлен, то настройки Сузи проста.Вы на самом деле не нужно использовать компас, чтобы использовать СУСИ — Сузи совместим с почти любой Сасс документооборота — но с целью начать работу, я буду использовать компас, какОсновным примером .

Для установки Сюзи, просто запустите в командной строке:

$ gem install susy

(Если вы получаете сообщение об ошибке, возможно, потребуется префикс эту команду с sudo.)

Тогда настроить новый проект.Если вы используете компас, в config.rb нужно добавить require 'susy'.Затем, в главном файле СКС (в данном случае screen.scss) добавить @import "susy"; импортировать Сюзи в проект .

Альтернативы, CodeKit 9 является отличным приложением для получения и работает со всем необходимым и позволяет добавлять Сюзи к проекту быстро и легко .

Наконец, мы должны создать | index.html__7 файл в нашей папке проекта для размещения нашей разметки, и связать его с нашей стилей .

Строительство наш первый СУСИ Grid

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

$susy: (
  columns: 12,
  container: 1200px,
  gutters: 1/4,
  global-box-sizing: border-box,
  debug: (image: show)
);

На этой карте вы можете определить почти любой из глобальных настроек для сетки, из числа столбцов GUTTER ширину, все из которых перечислены в Сузи documentation 10 .Если вы не введете значение в вашей карте, Сюзи просто использовать настройки по умолчанию.Есть несколько вещей, которые нам нужно определить, чтобы создать нашу сетку:

  • Количество columns мы будем использовать .
  • Максимальная ширина container.Если вы не укажете ширину, ваш контейнер будет 100% ширины окна просмотра, как и любой элемент блока.Вы можете это в некоторых случаях, но, особенно в то время как мы учимся, установив максимальную ширину позволяет более ясно увидеть, что происходит на .
  • Gutters.По умолчанию Сузи включает желоба, как правых полях на ваших страницах и на одну четверть (1/4) ширины столбца.Вы можете изменить соотношение желоба здесь, или использовать gutter-position11, чтобы решить, как вы хотите желоба вести себя .
  • Бокс-sizing.Я всегда предпочитаю, чтобы установить это border-box.(По умолчанию Susy является content-box.)
  • Отладки image.Установка этого show отображает фоновое изображение, показывая свои сетки столбцов, полезно для убедившись, что все выравнивается правильно и ваши элементы ведут себя, как они должны .

Создание основной Layout

Мы собираемся начать с создания этой простой макет, используя Сюзи:

A basic webpage layout 12
Основной макет страницы.( Просмотр большой version 13 )

Смотрите Сузи Сетка Пример 1A 14 Мишель Баркер ( @ | michellebarker__1 __25 | 33 24 15 ) на CodePen __39 | 34 25 16 .

основная схема сетки создана при помощи Сюзи (на CodePen)

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

<main class="wrapper">
  <header></header>
  <article></article>
  <aside></aside>
  <footer></footer>
</main>

Как я уже упоминал ранее, Сузи полностью зависит от CSS и Sass, чтобы настроить сетку, так что вам не нужно что-нибудь добавить к вашему HTML.Наиболее важной особенностью для создания сеток в суперсимметрии span примесь.Используйте @include включить подмешать в вашем Sass.Как вы можете видеть на картинке, мы хотим, чтобы наш верхний и нижний колонтитулы занять 100% ширины контейнера, так что мы не должны делать ничего здесь.Но мы должны наши ~ 28 и ~ | 29 | элементы взять восемь столбцов и четыре колонки соответственно в нашем двенадцать столбцов сетки.Для того, чтобы достичь этого, мы должны использовать span подмешать:

/* SCSS */

article {
  @include span(8 of 12);
  /* More styles here */
}

aside {
  @include span(4 of 12 last);
  /* More styles here */
}

Есть несколько вещей, чтобы отметить здесь:

  1. Сузи зависит от context: мы могли бы легко написать @include span(8) для <article> элемента, который будет производить тот же результат, потому что мы уже определили наш макет в виде четырех столбцов в карте.Тем не менее, если мы хотим, чтобы переопределить карту для этого конкретного элемента (например, разделить эту область нашего макета в большем количестве колонок), мы должны указать контекстное — в этом случае, двенадцать колонн .
  2. Мы хотим, <aside> быть последним в строке, так что мы добавили слово last к примесь.Это говорит Сюзи удалить запас правую на этом элементе, так что он подходит на строке .

Если мы взглянем на наш CSS файл, мы увидим выше Sass компилирует:

article {
  width: 66.10169%;
  float: left;
  margin-right: 1.69492%;
}

aside {
  width: 32.20339%;
  float: right;
  margin-right: 0;
}

Вы можете видеть, что Сузи была рассчитывается наши ширину столбцов и желобов на основе настроек, которые мы, указанных в нашей карте .

В CodepenПример я включил фиктивный контент, а также небольшой отступ и цвет фона на наших элементов.Без них наша сетка просто быть невидимым, а Сузи не имеет по умолчанию стиль .

Как мы с плавающей элементы, мы также должны помнить, чтобы очистить наш колонтитул:

    
header {
  padding: 2em;
  background-color: #FF4CA5; /* Of course, you can define your colours as variables if you prefer! */
}

article {
  @include span(8);
  padding: 2em;
  background-color: #ff007f;
}

aside {
  @include span(4 last);
  padding: 2em;
  background-color: #CC0066;
}

footer {
  clear: both;
  padding: 2em;
  background-color: #7F2653;
}

Наконец, мы будем включать в container подмешать в нашей main элемента, чтобы дать наш контент максимальную ширину и положение его в центре страницы, установив левый и правый края до auto:

main.wrapper {
  @include container;
}

С этими дополнениями, мы получаем такой результат:

A basic webpage layout with dummy content 17
Основной макет страницы с фиктивной содержания.( Просмотр большой version 18 )

Переработка Наша Grid

Мы могли бы сделать с разделения элементов, чтобы сделать наш макет более приятным.Давайте добавим нижнюю границу нашей <header>, <article> 29 ~ и | элементы.Что бы еще более привлекательным макет будет сделать наши нижние поля ту же ширину, как наши желобов столбцов.С Сюзи, мы можем сделать это с помощью gutter | __27 function (в отличие от примесь):

header, article, aside {
  margin-bottom: gutter();
}

Как мы не указали значение в gutter функции, Сузи будет использовать наши настройки карты;то есть, 1/4 столбцов ширина в макете двенадцать столбцов.Но если, например, раздел мы работали на было всего восемь колонн шириной, мы хотим указать gutter(8) создать такой же эффект .

Наш файл SCSS теперь выглядит следующим образом:

main {
  @include container;
}

header, article, aside {
  margin-bottom: gutter();
}

header {
  padding: 2em;
  background-color: #FF4CA5;
}

article {
  @include span(8);
  padding: 2em;
  background-color: #ff007f;
}

aside {
  @include span(4 last);
  padding: 2em;
  background-color: #CC0066;
}

footer {
  clear: both;
  padding: 2em;
  background-color: #7F2653;
}

Сейчас наша разметка выглядит так:

A webpage layout refined with gutters 19
Макет страницы уточнены с желобов.( Просмотр большой version __47 | | 20__10 )

Примеси Vs.Functions

Мы просто использовали gutter как функция, в отличие от включения его в примесь.Стоит отметить, что span, gutter 38 ~ и …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.