Java, UX, HTML, CSS, WEB-design

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

[ad_1]

  • Тайлер Тейт

  • 0 Комментарии

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

  • 8 минут чтения

  • Кодирование, макеты, CSS, сетки, семантика

Краткое резюме ↬

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

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

Дальнейшее чтение на SmashingMag:

  • Веб-дизайн на основе сетки, упрощенный
  • Проектирование с использованием подхода на основе сетки
  • Семантический CSS с интеллектуальными селекторами

Проблемы

Проблема № 1: они не семантичны

Самая большая жалоба, которую я слышал от пуристов с тех пор, как два года назад создал CSS-сетку размером 1 КБ, заключается в том, что системы сетки CSS не позволяют должным образом разделить разметку и представление. Grid-системы требуют, чтобы веб-дизайнеры добавляли .grid_x Классы CSS для элементов HTML, смешивая презентационную информацию с семантической разметкой.

Еще после прыжка! Продолжить чтение ниже ↓

Плавающие элементы также должны быть очищены, что часто требует добавления ненужных элементов на страницу. Это иллюстрируется блоком очистки, который поставляется с 960.gs:

<div class="grid_3">
    220
</div>
<div class="grid_9">
    700
</div>
<div class="clear"></div>

Проблема № 2: они не жидкие

В то время как сетки CSS хорошо работают для макетов с фиксированной шириной, работать с плавными процентами сложнее. Хотя большинство сеточных систем предоставляют гибкий вариант, они ломаются, когда вводятся вложенные столбцы. В приведенном ниже примере CSS Grid размером 1 КБ: .grid_6 обычно устанавливается на ширину 50%, в то время как .grid_3 обычно устанавливается на уровне 25%.

Но когда .grid_3 появляется внутри .grid_6 ячейке, проценты должны быть пересчитаны. В то время как типичной сеточной системе требуется всего 12 правил CSS для указания ширины всех 12 столбцов, гибкой сетке потребуется 144 правила, чтобы обеспечить только один уровень вложенности: возможно, но не очень удобно.

<div class="column grid_6">
    <div class="row">
        <div class="column grid_3"> </div>
        <div class="column grid_3"> </div>
    </div>
</div>

Проблема № 3: они не реагируют

Адаптивный веб-дизайн — модное слово года. Хотя появляются новые инструменты, такие как 1140 CSS Grid и Adapt.js, которые позволяют изменять макет страницы в зависимости от размера экрана или типа устройства, оптимальное решение еще не найдено.

Во всем виноваты инструменты

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

Ну не так быстро. Пока мы ждем, когда браузеры добавят встроенную поддержку CSS для этого ошибочного модуля макета сетки, доступна футуристическая версия CSS. сегодня это уже поддерживается каждым браузером с поддержкой CSS: LESS CSS.

снимок экрана
LESS привносит новые мощные функции в CSS.

МЕНЬШЕ Что?

Вы, наверное, слышали о LESS, но, возможно, никогда не пробовали. Подобно SASS, LESS расширяет CSS, предоставляя вам возможность использовать переменные, выполнять операции и разрабатывать миксины многократного использования. Ниже приведены несколько примеров того, что он может сделать.

Переменные

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

// LESS
@color: #4D926F;

#header {
  color: @color;
}

Приведенный выше пример будет компилироваться следующим образом:

/* Compiled CSS */
#header {
  color: #4D926F;
}

Операции

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

// LESS
@border-width: 1px;

#header {
    border-left: @border-width * 3;
}

В этом примере 1px умножается на 3 чтобы получить следующее:

/* Compiled CSS */
#header {
    border-left: 3px;
}

Миксины

Наиболее мощные миксины позволяют повторно использовать целые фрагменты CSS. Просто включите имя класса миксина в другой класс. Более того, LESS позволяет передавать параметры в миксин.

// LESS
.rounded(@radius) {
    -webkit-border-radius: @radius;
    -moz-border-radius: @radius;
    border-radius: @radius;
}

#header {
    .rounded(5px);
}

Подробные свойства CSS3 для конкретных браузеров демонстрируют преимущества, которые приносят миксины:

/* Compiled CSS */
#header {
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
}

Недостатки МЕНЬШЕ

Поначалу я скептически относился к LESS, но теперь я его решительный сторонник. Таблицы стилей LESS лаконичны и удобочитаемы, и они поощряют повторное использование кода. Тем не менее, есть некоторые потенциальные недостатки, о которых следует знать:

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

Примечание по компиляции LESS

Существует три подхода к компиляции таблиц стилей LESS в CSS:

  • Пусть браузер сделает компиляцию.. Как следует из названия, LESS.js написан на JavaScript и может компилировать LESS в CSS непосредственно в браузере пользователя. Хотя этот метод удобен для разработки, лучше всего использовать один из следующих двух методов перед запуском в производство (поскольку компиляция в браузере может занять несколько сотен миллисекунд).
  • Используйте серверный компилятор.. LESS.js также может компилироваться на стороне сервера с помощью Node.js, и он был перенесен на несколько других серверных языков.
  • Используйте настольное приложение. LESS.app — это приложение для Mac, которое компилирует локальные файлы по мере их сохранения на вашем компьютере.

Знакомство с системой семантической сетки

Инновации, которые LESS привносит в CSS, являются основой нового мощного подхода к созданию макетов страниц. Этот подход — система семантической сетки. Эта новая разновидность сетки CSS сияет там, где другие не справляются:

  1. Это семантика;
  2. Он может быть фиксированным или жидким;
  3. Это отзывчиво;
  4. Он позволяет мгновенно изменять количество столбцов, ширину столбцов и ширину желоба прямо в таблице стилей.

снимок экрана
Semantic Grid System использует LESS CSS, чтобы предложить новый подход к макету страницы.

Настройка сетки

Звучит слишком хорошо, чтобы быть правдой? Вот как это работает.

Во-первых, импортируйте семантическую сетку в вашу рабочую таблицу стилей LESS.

@import 'grid.less';

Затем определите переменные для количества столбцов и установите желаемую ширину для столбца и желоба. Введенные здесь значения приведут к сетке размером 960 пикселей.

@columns: 12;
@column-width: 60;
@gutter-width: 20;

Теперь сетка настроена и готова к использованию для макета страницы.

Использование сетки

Теперь, когда сетка настроена, рассмотрим два элемента на HTML-странице, которые вы хотели бы расположить рядом.

<body>
    <article>Main</article>
    <section>Sidebar</section>
</body>

Компоновка рядом может быть достигнута путем передачи желаемого количества единиц сетки в .column() миксин (который определен в без сетки файл).

// LESS
@import 'grid.less';

@columns: 12;
@column-width: 60;
@gutter-width: 20;

article {
    .column(9);
}
section {
    .column(3);
}

Приведенный выше LESS будет скомпилирован в CSS следующим образом:

/* Compiled CSS */
article {
    display: inline;
    float: left;
    margin: 0px 10px;
    width: 700px;
}
section {
    display: inline;
    float: left;
    margin: 0px 10px;
    width: 220px;
}

Эта страница демонстрирует результат. Что отличает этот подход, так это то, что он устраняет уродливые .grid_x классы в разметке. Вместо этого ширина столбцов задается непосредственно в таблице стилей, обеспечивая четкое разделение между декларативной разметкой и таблицами стилей представления. (она называется семантический сетка по какой-то причине, в конце концов.)

Итак, что за кулисами?

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

// Utility variable — you will never need to modify this
@_gridsystem-width: (@column-width*@columns) + (@gutter-width*@columns) * 1px;

// Set @total-width to 100% for a fluid layout
@total-width: @_gridsystem-width;

// The mixins
.row(@columns:@columns) {
   display: inline-block;
   overflow: hidden;
   width: @total-width*((@gutter-width + @_gridsystem-width)/@_gridsystem-width);
   margin: 0 @total-width*(((@gutter-width*.5)/@_gridsystem-width)*-1);
}
.column(@x,@columns:@columns) {
   display: inline;
   float: left;
   width: @total-width*((((@gutter-width+@column-width)*@x)-@gutter-width) / @_gridsystem-width);
   margin: 0 @total-width*((@gutter-width*.5)/@_gridsystem-width);
}

Гибкие макеты

Пример выше демонстрирует фиксированный макет на основе пикселей. Но гибкие процентные макеты так же просты. Чтобы переключиться с пикселей на проценты, просто добавьте одну переменную:

// LESS
@total-width: 100%;

Без других изменений скомпилированный CSS становится таким:

/* Compiled CSS */
article {
    display: inline;
    float: left;
    margin: 0px 1.04167%;
    width: 72.9167%;
}
section {
    display: inline;
    float: left;
    margin: 0px 1.04167%;
    width: 22.9167%;
}

В этом примере показано, как проценты динамически вычисляются с использованием операций МЕНЬШЕ, что также применимо к вложенным столбцам.

Адаптивные макеты

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

article { .column(9); }
section { .column(3); }

@media screen and (max-width: 720px) {
    article { .column(12); }
    section { .column(12); }
}

Попробуйте сами

Всего пару дней назад Twitter выпустил проект под названием Bootstrap, который предоставляет аналогичную (но более ограниченную) систему сетки, построенную с использованием переменных LESS и миксинов. Похоже, будущее CSS-сетки предстает перед нами.

Semantic Grid System сочетает в себе лучшее из обоих миров: мощь и удобство сетки CSS и идеальное разделение разметки и представления. Загрузите сетку для себя, разветвите ее на GitHub и дайте нам знать, что вы думаете!


Загрузите сетку с сайта Semantic.gs.

Дальнейшее чтение

  • Semantic.gs Загрузите сетку.
  • МЕНЬШЕ Узнайте больше о МЕНЬШЕ.
  • «LESS.js сделает CSS устаревшим», Дмитрий Фадеев
  • «Отзывчивый веб-дизайн», Итан Маркотт
  • 1140 CSS Grid и Adapt.js Два других подхода к адаптивным макетам.
  • «Переосмысление CSS-сеток», Марк Бултон.
  • «Наилучшие методы убивают нас» Противоположные взгляды Николь Салливан на семантику, описанные Люком Вроблевски.
  • 1KB CSS Grid Поиграйте с оригинальной CSS-сеткой Тайлера Тейта.
Сокрушительная редакция
(аль)



[ad_2]
Source: https://smashingmagazine.com

Заключение

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

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

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

Название: Система семантической сетки: макет страницы для завтрашнего дня . Краткое описание: [ad_1] ⭐ Тайлер . Дата публикации: 20.02.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

Кнопка «Наверх»