WE DIGIT
THE WORLD
(495) 118 20 44
Сейчас сотрудники не в офисе
Ещё телефоны

Вы можете написать нам на Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., воспользоваться онлайн-консультантом, связаться с нами через форму контактов или оставить свой телефон.

В рабочее время мы обязательно свяжемся с вами.

Сегодня работаем с 10:00 до 18:00
Пн
10:0018:00
Вт
10:0018:00
Ср
10:0018:00
Чт
10:0018:00
Пт
10:0018:00
Сб
Вс

Требования к верстке

Пятница, 04 декабря 2015 | Автор: Евгений Беляков, Алексей Морозов
Требования к верстке

Делая однажды очередную оценку сайта по верстке, мы написали довольно длинный список ошибок. Настолько длинный, что итоговым диагнозом была перевёрстка сайта. Когда клиент получил рекомендацию, то задал нашим сотрудникам вопрос: «А на что вы ориентировались при написании рекомендаций? Есть ли список, документ? Где можно увидеть эти правила?», — и мы как-то призадумались... Ведь, действительно, список и правила были у нас в голове вырабатываясь там годами. Так появился документ «Требования к верстке».

Общие положения

Верстка производится в соответствии со стандартами языка разметки HTML5 и CSS3.

Верстка производится на базе семантических фреймворков Uikit и Bootstrap 3 (далее - фреймворк), используемая версия фреймворка – последняя стабильная на момент начала верстки проекта.

 

Поддерживаемые браузеры:

  • Internet Explorer – версия 9 и выше;
  • Microsoft Edge – все версии;
  • Google Chrome – версия 29 и выше;
  • Yandex browser – версия 13 и выше;
  • Opera – версия 15 и выше;
  • Mozilla Firefox – версия 18 и выше;
  • Safari – версия 7.1 и выше.

 

Поддерживаемые мобильные платформы (при условии использования по умолчанию предустановленных на устройствах браузеров):

  • Apple iPhone 4;
  • Apple iPad 2;
  • мобильные устройства под управлением ОС Android версии 4.0 и выше;
  • мобильные устройства под управлением ОС Windows Phone версии 8 и выше.

 

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

Общие базовые требования

  1. Единообразное написание и форматирование кода в HTML, CSS и JavaScript.
  2. Использование jQuery.
  3. Для резиновых макетов обязательно должна быть задана минимальная и максимальная ширина.
  4. Цвет фона для body задан всегда. Если конкретный цвет не указан в макете, используется белый (#fff).
  5. Если Javascript кода много — нужно его выносить в отдельный файл. Обработчики событий тоже лучше отделить и объявлять в отдельном файле.
  6. Недопустимы грубые ошибки в разметке (ссылки сделаны не тегом <a>, абзацы должны быть абзацами, а не <br><br>, формы должны быть только внутри тега <form>).
  7. Не рекомендуется использование !important без крайней необходимости.
  8. Нельзя использовать транслит в названиях классов, атрибутах и так далее.
  9. Нельзя строить сетку с помощью таблиц и позиционирования.
  10. Если фреймворк не используется, то использовать normalize.css или reset.css.
  11. Необходимо указать альтернативные варианты шрифта и тип семейства в конце перечисления.

 

Вёрстка проходит тест на переполнение контентом. Вёрстка не ломается:

  • При добавлении в элементы большего количества текста.
  • При использовании картинок с неподходящими размерами.
  • Текст не должен выпадать из объектов.
  • Переполнение контентными блоками не приводит к нарушению сетки.

 

Кодировка файлов

Все файлы кодируются в кодировке UTF-8 without BOM.

Необходимо минимизировать CSS-код и JavaScript-код.

 

Общие требования к именованию классов

HTML разметка

  • Для разметки используются теги HTML5.
  • Значения всех атрибутов заключаются в двойные кавычки (").
  • Форматирование HTML иерархическое, отступ — один символ табуляции.
  • Используется блочная верстка.
  • Табличная верстка используется только в теле контента, редактируемого посредством WYSIWYG-редакторов.
  • В контентных фрагментах верстки используются теги <p>, <span>. Не допускается использование блочных элементов основной разметки в контентных фрагментах верстки.
  • Не допускается использование тега <p> кроме фрагментов верстки, редактируемых посредством WYSIWYG-редакторов.

 

Именование классов

Схема именования:

  • .block
  • .block-mod-value
  • .block-element
  • .block-element-mod-value

 

В качестве разделителя отдельных элементов имени класса или идентификатора равнозначно используются символы дефиса (-) или нижнего подчеркивания (_).

Использование символа дефиса предпочтительнее. Использование классов и идентификаторов равнозначно.

 

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

Для именования классов и идентификаторов используются следующие префиксы:

  • применяемые в фреймворках;
  • обозначающие разметку HTML;
  • обозначающие визуальное оформление элементов.

 

Семантика именования блоков

Названия блоков и элементов определяются как их функциональному назначению так и визуальному отображению.

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

 

Применение каскада

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

 

Требования к стилям

Базовый CSS

Нормализация стилей осуществляется встроенными средствами используемого фреймворка.

Форматирование стилей

  • Каждое свойство — на отдельной строке.
  • Каждый селектор — на отдельной строке.
  • Используйте сокращённые CSS-свойства, где это только возможно.
  • Используйте максимально короткие ID и class имена, но не в ущерб информативности.
  • Избегайте совмещения элементов с ID и class именами.
  • Свойство без префикса пишется последним.
  • Использование символа точки c запятой (;) в конце описания всех CSS-свойств обязательно.

 

Порядок CSS-свойств

Приблизительная схема расположения свойств:

{
Позиционирование
Параметры блока
Размеры
Таблицы / списки
Свойства текста
Шрифт
Цвет
}

 

Расположение по файлам

Стили, принадлежащие одному блоку, должны следовать друг за другом: сначала блок, потом его модификаторы (также переопределения для конкретных браузеров, для отключенного JS и т.п.), затем элементы и их модификаторы.

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

Использование CSS-препроцессоров

  • Поощряется использование CSS-препроцессора LESS.
  • Каждый класс или идентификатор должен являться отдельным определением за исключением состояний, псевдоэлементов, медиа-запросов и т.п.
  • Следует использовать переменные, миксины, функции.
  • При использовании less правила организации файлов такие же, как и для обычного css.
  • Общие используемые переменные и миксины должны быть вынесены в отдельные файлы и подключаться по мере необходимости.
  • Переменные для одного блока должны объявляться непосредственно перед ним.
  • Переменные и миксины должны быть названы в формате @header-height: 80px; .inline-block() {}
  • Подключение стилей на сайт должно осуществляться через один less-файл.

 

Требования к изображениям

Форматы используемых изображений (перечислено в порядке уменьшения приоритета использования):

  • для логотипов: SVG, PNG;
  • для визуального оформления: SVG, PNG;
  • контентные изображения: JPEG, PNG.

 

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

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

Для изображений в формате JPEG используется однородная степень сжатия, не менее 75%.