Если вы дизайнер, вы будете знать, что сетки ваш 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
Почему может вы хотите использовать Сюзи в вашем следующем проекте?Есть несколько преимуществ:
- (Относительно) Легко Learn
Если вы использовали другие механизмы (например Bootstrap или фонда), и если вы знакомы с Sass вообще, Сюзи не должно быть слишком трудно для вас, чтобы забрать,Даже если вы достаточно новое для Sass, Сюзи не требуют глубокого знания и отличный способ, чтобы начать!Примеры в этой статье предполагают знание Sass, так что стоит читать вверх немного, если вы не знакомы . - Ускорить ваш Workflow
В отличие от многих других структур, Сюзи не приходит с кучей по умолчанию стиль, который вам нужно переписать.На самом деле, Сюзи не имеет стиль: это чисто Система компоновки сетки.Его целью является сделать математику для Вас — что-нибудь еще для вас, чтобы добавить.После того, как вы знакомы с несколько Mixins Susy, вы найдете это будет вам сэкономить время и избавить вас до сконцентрироваться на дизайне . - Используйте как много или как мало, как вы 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
Мы собираемся начать с создания этой простой макет, используя Сюзи:
Мы начнем с некоторых разметки содержит заголовок, основной области содержимого со статьей и боковой панели, и подвал .
<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 */
}
Есть несколько вещей, чтобы отметить здесь:
- Сузи зависит от context: мы могли бы легко написать
@include span(8)
для<article>
элемента, который будет производить тот же результат, потому что мы уже определили наш макет в виде четырех столбцов в карте.Тем не менее, если мы хотим, чтобы переопределить карту для этого конкретного элемента (например, разделить эту область нашего макета в большем количестве колонок), мы должны указать контекстное — в этом случае, двенадцать колонн . - Мы хотим,
<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;
}
С этими дополнениями, мы получаем такой результат:
Переработка Наша 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;
}
Сейчас наша разметка выглядит так:
Примеси Vs.Functions
Мы просто использовали gutter
как функция, в отличие от включения его в примесь.Стоит отметить, что span
, gutter
38 ~ и | …
Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров