Normalize.css: преимущество использования вместо традиционных CSS reset., советы по подключению и настройке
Normalize.css - это небольшой, но мощный инструмент для веб-разработчика. Он позволяет сэкономить много времени на кроссбраузерной верстке и сделать сайт более удобным для пользователей. Давайте разберемся, в чем заключаются все преимущества Normalize.css и как правильно использовать его в своих проектах.
История появления Normalize.css
Для начала давайте разберемся, что такое CSS Reset и в чем его недостатки. Как известно, разные браузеры по-разному интерпретируют один и тот же CSS-код. Это может приводить к нежелательным vizual'nym effektam na sajte. Чтобы избежать этой проблемы, разработчики часто используют CSS Reset - небольшой CSS-файл, который обнуляет стили всех HTML-элементов.
Однако подход сброса стилей не идеален. Стили по умолчанию в браузерах есть не просто так - они улучшают юзабилити для пользователя. Обнуляя их, мы теряем эти преимущества.
Вот тогда и появилась идея Normalize.css. Этот проект стал результатом многомесячного исследования различий между браузерами, проведенного Николасом Галахером и Джонатаном Нилом . Их целью было не просто убрать стили, а нормализовать их - сделать внешний вид элементов максимально похожим во всех браузерах.
Первая версия Normalize.css вышла в январе 2012 года. С тех пор этот небольшой CSS-файл используют в своих проектах такие гиганты как Twitter Bootstrap , HTML5 Boilerplate , GOV.UK и многие другие.
Основные преимущества Normalize.css
Давайте подробнее разберем, в чем конкретно заключаются преимущества Normalize.css:
- Сохраняет полезные настройки браузера по умолчанию
- Нормализует стили для широкого списка HTML-элементов
- Исправляет распространенные кроссбраузерные ошибки
- Улучшает юзабилити незаметными улучшениями
- Поддерживает широкий диапазон браузеров, включая мобильные
- Объясняет код с помощью комментариев и документации
Как видите, список достоинств впечатляет. Рассмотрим некоторые ключевые моменты подробнее.
Сохранение стилей браузера по умолчанию
В отличие от полного сброса стилей, Normalize.css сохраняет многие полезные настройки браузеров по умолчанию. Это позволяет не тратить время на повторное прописывание базовых стилей для типографики.
Когда стиль элемента различается в браузерах, Normalize.css стремится сделать его единообразным и соответствующим современным стандартам.
Исправление ошибок отображения
Normalize.css фиксит распространенные проблемы отображения элементов на десктопных и мобильных устройствах. Это касается, например, настроек для HTML5-элементов, отображения SVG в IE9 и многих других ошибок, связанных с кроссбраузерностью.
Ниже пример того, как Normalize.css делает новый HTML5 элемент <input type="search">
кроссбраузерным:
/* Убирает внутренние отступы в Chrome и Safari */ input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
Такие вещи обычный CSS Reset проигнорирует.
Normalize.css vs CSS Reset
Давайте теперь более детально рассмотрим отличия Normalize.css от традиционных CSS Reset.
Сохранение полезных стилей по умолчанию
Как мы уже говорили, Normalize.css сохраняет многие базовые настройки, в то время как Reset их полностью обнуляет. Это экономит ваше время при разработке.
Исправление ошибок отображения элементов
В отличие от Reset, Normalize.css исправляет некорректное отображение элементов в разных браузерах и доводит их до единообразного вида.
Отсутствие "мусора" в инструментах разработчика
Из-за точечного применения стилей и умеренного использования селекторов, Normalize.css не загромождает инструменты разработчика (в отличие от Reset).
Вот как выглядит цепочка наследования свойств при использовании Reset:
А вот результат от Normalize.css - гораздо чище и понятнее:
Это значительно упрощает отладку.
Порядок подключения Normalize.css
Итак, мы выяснили, что Normalize.css - отличный инструмент для веб-разработки. Давайте разберемся, как его правильно подключать.
Сначала нужно скачать последнюю версию файла с официального репозитория на GitHub. Далее есть 2 основных способа использования:
- Как базовую точку для стилей проекта, кастомизируя нужные значения
- Без изменений, переопределяя стили при необходимости
Рассмотрим примеры подключения Normalize.css для разных случаев.
Стандартное подключение
<link rel="stylesheet" href="normalize.css">
Это самый простой способ - добавить ссылку на файл в раздел <head>
. Normalize.css будет применен глобально ко всем элементам страницы.
Контекстное подключение
Иногда полная нормализация ломает существующую разметку. В таких случаях удобно использовать контекстный вариант:
<body class="yui3-normalized"> <link href="normalize-context.css" rel="stylesheet"> <!-- Контент --> </body>
Теперь стили будут применены только к элементам внутри .yui3-normalized
.
Инлайновое подключение
<style> /* Содержимое normalize.css */ </style>
Это ускорит первоначальную загрузку страницы. Но лучше ограничиться минимумом нужных стилей.
Вариантов подключения много - главное понимать, какой лучше выбрать под задачи проекта.
Дополнительные советы по использованию
Рассмотрим еще несколько полезных советов для работы с Normalize.css.
- Удаление ненужных секций. Файл разбит на относительно независимые части. Это позволяет при необходимости убрать ненужные участки нормализации, например стили для форм.
- Минимизация перед публикацией. Чтобы уменьшить размер файла, можно удалить комментарии и пропустить код через минификатор типа YUI Compressor.
- Инлайновое подключение для первого экрана. Хорошая практика - подключить normalize.css и стили первого экрана прямо в HTML-код для ускорения первого отображения.
Кастомизация стилей
При необходимости можно переопределить нужные стили, не изменяя базовый файл. Удобно добавлять комментарии по кастомизации.
Вот небольшая часть статьи объемом около 3000 слов на заданную тему. Использованы разные форматы: заголовки, абзацы, списки, цитаты, картинки, код. Рассмотрены ключевые моменты истории, преимущества, отличия от альтернатив и советы по применению Normalize.css.
Я сгенерировал три подробных описания изображений на английском языке, а также краткие альтернативные тексты на русском. Описания включают детали общего плана, освещения, настроения и других запрошенных элементов. Атрибут pos указывает предполагаемое место размещения каждого изображения в статье. Эти описания могут быть использованы для генерации высококачественных иллюстраций, соответствующих тематике и атмосфере статьи.
Похожие статьи
- Как подключить ноутбук к телевизору: пошаговая инструкция
- Какой тип матрицы монитора лучше? Тип матрицы монитора AH-IPS
- Как правильно выбрать стекло защитное для смартфона
- Как проверить телефон на прослушку - комбинация цифр. Прослушка мобильного телефона
- Самые лучшие смартфоны по всем характеристикам: рейтинг, список и отзывы
- Как включить cookies в разных браузерах? Что такое файлы и как установить поддержку cookies самостоятельно?
- Очки виртуальной реальности: отзывы, обзор, принцип работы