О normalize.css — Блог HTML Academy
Это перевод статьи Николаса Галахера — «About normalize.css».
Normalize.css — это небольшой CSS-файл, который обеспечивает для HTML-элементов лучшую кроссбраузерность в стилях по умолчанию. Это современная, готовая к HTML5 альтернатива традиционному reset.css.
- Normalize.css — сайт проекта
- Normalize.css — исходный код на GitHub
В настоящее время normalize.css используется в Twitter Bootstrap, HTML5 Boilerplate, GOV.UK, Rdio, CSS Tricks и во многих других фреймворках, инструментах и сайтах.
Обзор
Normalize.css является альтернативой CSS Reset. Проект является продуктом сотен часов глубокого исследования различий между изначальными стилями браузера. Это исследование провели Николас Галахер, @necolas и Джонатан Нил, @jon_neal.
Цели normalize.css:
- сохранять полезные настройки браузера, а не стирать их;
- нормализовать стили для широкого круга HTML-элементов;
- корректировать ошибки и основные несоответствия браузера;
- совершенствовать юзабилити незаметными улучшениями;
- объяснять код, используя комментарии и детальную документацию.
Он поддерживает широкий диапазон браузеров (в том числе мобильных) и включает в себя CSS, который нормализует HTML5-элементы, типографику, списки, встраиваемый контент, формы и таблицы.
Несмотря на то, что проект основан на принципе нормализации, он использует стандартные настройки там, где они предпочтительны.
Нормализовать или сбрасывать?
Стоит понимать более подробно, в чём отличие normalize.css от традиционного reset.css.
Normalize.css сохраняет полезные настройки по умолчанию
Reset.css накладывает однородный визуальный стиль, выравнивая стили по умолчанию почти для всех элементов. В отличие от этого, normalize.css сохраняет многие полезные стили браузеров по умолчанию. Это значит, что не требуется повторно объявлять стили для всех стандартных элементов типографики.
Когда элемент имеет различные стили по умолчанию в разных браузерах, normalize.css там, где это возможно, стремится сделать эти стили совместимыми и соответствующими современными стандартам.
Normalize.css исправляет популярные ошибки
Он исправляет основные баги на мобильных и десктопных устройствах, которые не затрагивает reset.css. Это включает в себя параметры отображения элементов HTML5, исправление font-size
для предварительно отформатированного текста, отображение SVG в IE9, и многие другие баги, связанные с отображаемым в разных браузерах и операционных системах.
Например, вот как normalize.css делает HTML5-элемент формы с типом search
кроссбраузерным и стилизованным.
Reset.css часто не приводит браузеры к тому уровню, где отправной точкой считается то, как элемент отрисовывается. Это особенно верно в отношении форм — именно здесь normalize.css может существенно помочь.
Normalize.css не мешает вашим инструментам отладки
Обычно при использовании reset.css раздражает огромная цепочка наследования свойств, которая отображается в инструментах разработчика.
Частый вид окна инструментов разработчика браузера при использовании reset. cssТакая проблема не возникает с normalize.css из-за целенаправленных стилей и умеренного использования множественных селекторов в наборе правил.
Normalize.css модульный
Проект разбит на относительно независимые участки, что позволяет увидеть, каким именно элементам нужны конкретные стили. Кроме того, это даёт вам возможность удалить блоки свойств (например, нормализацию форм), если известно, что они никогда не понадобятся на сайте.
Normalize.css имеет подробную документацию
Код normalize.css основан на детальном кроссбраузерном методичном тестировании. Подробно документированный файл вы можете найти на GitHub. Это значит, что вы можете узнать, что делает каждая строка кода, зачем она добавлена, какие различия существуют между браузерами. Также вы легко можете провести собственные тесты.
Цель проекта — показать людям, как по умолчанию браузеры отображают элементы, и помочь им упростить процесс внедрения улучшений.
Как использовать normalize.css
Сперва установите или скачайте normalize. css с GitHub. Есть два способа как можно его использовать.
Первый способ: используйте normalize.css как отправную точку CSS для вашего собственного проекта, изменяя значения согласно требованиям дизайна.
Второй способ: используйте normalize.css нетронутым и, основываясь на нём, переопределяйте стили в своём CSS при необходимости.
Заключение
Normalize.css значительно отличается от reset.css. Стоит попробовать его, чтобы увидеть, соответствует ли он вашему подходу и предпочтениям в разработке.
Проект развивается в открытом доступе на GitHub. Любой желающий может сообщить о проблемах и предложить исправления. Полная история проекта доступна всем для просмотра, а в коммитах и тикетах находятся контекст и причины всех изменений.
Материалы к прочтению
Вся информация о стилях по умолчанию:
- WHATWG suggestions for rendering HTML documents.
- Internet Explorer User Agent Style Sheets.
- CSS2.1 User Agent Style Sheet Defaults.
Бесплатные упражнения по CSS
Всего в двух кликах от вас, в тренажёрах по вёрстке. Это концентрат пользы для любого фронтендера.
Регистрация
Что такое нормализатор CSS и зачем он нужен — Журнал «Код»
Когда веб-разработчик создаёт новый сайт, он хочет, чтобы в каждом браузере этот сайт выглядел одинаково. Но у каждого браузера есть свои стандарты отступов, оформления ссылок или форматирования блоков. В результате то, что в «Хроме» выглядит хорошо, в «Сафари» может выглядеть не очень, а в «Мозилле» вообще разрывает.
Одной строкой: новые CSS-команды для фронтендов
Для примера возьмём простой код, который нарисует нам на странице несколько стандартных элементов:
- две горизонтальных линии-разделителя,
- поле ввода с текстом внутри,
- кнопку,
- текст со ссылкой.
А после этого посмотрим, как выглядит этот код в разных браузерах.
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <title>Делаем одинаково</title> </head> <body> <hr> <hr> <input type="text" placeholder="Напишите свой текст"> <br> <br> <button>Кнопка</button> <br> <br> <a href="#">Привет, это журнал «Код»! </a> </body> </html>Хром, версия 87.
Почему так происходит
Несмотря на то что внутри многих разных браузеров стоят одинаковые движки, у каждой компании свои представления о прекрасном и о том, как отображать разные HTML-элементы и CSS-стили. Например, в разных браузерах могут отличаться:
- толщина линий обводки,
- радиус скругления,
- размер текста,
- внешние и внутренние отступы у элементов,
- правила оформления ссылок,
- формы и кнопки.
Всё это записано в стандартных стилях браузера. Каждый раз, когда браузер встречает элемент, у которого не задан один из параметров, он берёт его из своей встроенной таблицы стилей. Разные браузеры — разные стили.
При этом браузер справится со своей основной задачей — показать HTML-страницу в понятном для пользователя виде. Но если веб-разработчик хочет, чтобы сайт выглядел идентично в каждом браузере, он должен предусмотреть это заранее и прописать в стилях.
Что такое нормализатор стилей
Чтобы сайт выглядел в каждом браузере почти одинаково, разработчики используют нормализатор стилей — normalize.css. По сути это просто большой CSS-файл, который делает следующее:
- стандартизирует все отступы;
- устанавливает единый размер шрифта;
- приводит к единому внешнему виду все формы, кнопки и элементы на странице;
- устанавливает для всех браузеров единые начальные параметры для форматирования текста, изображений и стандартных элементов.
Для этого нормализатор использует специальные CSS-команды, чтобы каждому браузеру объяснить на его языке, что нужно сделать.
Пример
Код ниже делает две вещи:
- Устанавливает одинаковую высоту строки во всех браузерах.
- Предотвращает изменения размера шрифта в iOS при повороте экрана.
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
-webkit-text-size-adjust — это специальная команда, которая состоит из двух частей:
-webkit, который сообщает, что эта команда относится к браузерам на движке WebKit. Остальные браузеры проигнорируют эту команду, а, например, Safari в iOS поймёт, что это команда для неё.
text-size-adjust — команда, которая говорит браузеру, какой размер шрифта нужно использовать.
Получается, что все браузеры поймут первую команду line-height
, потому что она стандартная для всех браузеров, а на вторую -webkit-text-size-adjust
среагируют только те браузеры, у которых могут быть проблемы с отображением размера текста (например, Safari).
Как использовать
Подключить нормализатор как обычную CSS-таблицу стилей к своей странице:
<link rel="stylesheet" type="text/css" href="https://necolas.github.io/normalize.css/8.0.1/normalize.css">
Ещё вариант — можно взять нормализатор и использовать его как шаблон или основу для собственной таблицы стилей. Так в одном файле вы получите одинаковое отображение в браузерах и нужные настройки внешнего вида страницы.
Вот как будут выглядеть наши страницы после подключения нормализатора:
ХромСафариFirefoxОпераНо что-то же всё равно отличается даже на этих скриншотах!
Конечно, потому что этот нормализатор не может предусмотреть и настроить всё. Он оставляет фирменное оформление полей ввода и кнопок для каждого браузера, чтобы нормализованные элементы не выглядели чужеродно в родном браузере.
При этом вы можете на его основе сделать свой нормализатор, который предусматривает гораздо больше разных неочевидных случаев. Опытные разработчики, кстати, со временем так и делают — пишут свой нормализатор на основе собственного опыта и тех проблем в разработке, в которыми они сталкивались.
Это единственный нормализатор?
Нет, на самом деле их много. Просто этот самый популярный и проверенный.
Что дальше
Кроме нормализаторов есть ещё ресеты — они сбрасывают вообще все настройки в ноль, чтобы можно было установить всё вручную. Когда-нибудь доберёмся и до них.
Текст и скриншоты:
Михаил Полянин
Редактор:
Максим Ильяхов
Художник:
Даня Берковский
Корректор:
Ирина Михеева
Вёрстка:
Мария Дронова
Соцсети:
Олег Вешкурцев
Normalize.css — CSS Reset
Skip to content
Классный своего рода CSS Reset! Постоянно использую как дополнительный «нормализатор» стилей.
Normalize.css — принуждает браузеры отображать все элементы более систематично, последовательно и в соответствии с современными стандартами. Он нацелен ТОЛЬКО на стили, которые должны быть нормализованы.
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ /* Document ========================================================================== */ /** * 1. Correct the line height in all browsers. * 2. Prevent adjustments of font size after orientation changes in iOS. */ html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ } /* Sections ========================================================================== */ /** * Remove the margin in all browsers. */ body { margin: 0; } /** * Render the `main` element consistently in IE. */ main { display: block; } /** * Correct the font size and margin on `h2` elements within `section` and * `article` contexts in Chrome, Firefox, and Safari. */ h2 { font-size: 2em; margin: 0.67em 0; } /* Grouping content ========================================================================== */ /** * 1. Add the correct box sizing in Firefox. * 2. Show the overflow in Edge and IE. */ hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ pre { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } /* Text-level semantics ========================================================================== */ /** * Remove the gray background on active links in IE 10. */ a { background-color: transparent; } /** * 1. Remove the bottom border in Chrome 57- * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } /** * Add the correct font weight in Chrome, Edge, and Safari. */ b, strong { font-weight: bolder; } /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ code, kbd, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } /** * Add the correct font size in all browsers. */ small { font-size: 80%; } /** * Prevent `sub` and `sup` elements from affecting the line height in * all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } /* Embedded content ========================================================================== */ /** * Remove the border on images inside links in IE 10. */ img { border-style: none; } /* Forms ========================================================================== */ /** * 1. Change the font styles in all browsers. * 2. Remove the margin in Firefox and Safari. */ button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1. 15; /* 1 */ margin: 0; /* 2 */ } /** * Show the overflow in IE. * 1. Show the overflow in Edge. */ button, input { /* 1 */ overflow: visible; } /** * Remove the inheritance of text transform in Edge, Firefox, and IE. * 1. Remove the inheritance of text transform in Firefox. */ button, select { /* 1 */ text-transform: none; } /** * Correct the inability to style clickable types in iOS and Safari. */ button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; } /** * Remove the inner border and padding in Firefox. */ button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } /** * Restore the focus styles unset by the previous rule. */ button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; } /** * Correct the padding in Firefox. */ fieldset { padding: 0. 35em 0.75em 0.625em; } /** * 1. Correct the text wrapping in Edge and IE. * 2. Correct the color inheritance from `fieldset` elements in IE. * 3. Remove the padding so developers are not caught out when they zero out * `fieldset` elements in all browsers. */ legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } /** * Add the correct vertical alignment in Chrome, Firefox, and Opera. */ progress { vertical-align: baseline; } /** * Remove the default vertical scrollbar in IE 10+. */ textarea { overflow: auto; } /** * 1. Add the correct box sizing in IE 10. * 2. Remove the padding in IE 10. */ [type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /** * Correct the cursor style of increment and decrement buttons in Chrome. */ [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } /** * 1. Correct the odd appearance in Chrome and Safari. * 2. Correct the outline style in Safari. */ [type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } /** * Remove the inner padding in Chrome and Safari on macOS. */ [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } /** * 1. Correct the inability to style clickable types in iOS and Safari. * 2. Change font properties to `inherit` in Safari. */ ::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } /* Interactive ========================================================================== */ /* * Add the correct display in Edge, IE 10+, and Firefox. */ details { display: block; } /* * Add the correct display in all browsers. */ summary { display: list-item; } /* Misc ========================================================================== */ /** * Add the correct display in IE 10+. */ template { display: none; } /** * Add the correct display in IE 10. */ [hidden] { display: none; }
Поделиться или сохранить:
Про normalize.css
Normalize.css — это маленький файл CSS, который обеспечивает кроссбраузерную согласованность в моделировании HTML элементов. Новая и современная замена старого и доброго reset.css.
Normalize.css сейчас работает в формах на Twitter Bootstrap, HTML5 Boilerplate, GOV.UK, Rdio, CSS Tricks и во многих других инструментах и сайтах.
Normalize.css является новой альтернативой старого reset.css. Этот проект стал продуктом 100-часового интенсивного исследования в различиях стилей разных браузеров.
Normalize.css — задачи таковы:
Ко мне часто поступают вопросы про хостинг, которым я пользуюсь и поэтому решил указать хостинг в статье https://sprinthost.ru. Вы можете попробовать попользоваться хостингом 30 дней бесплатно. Чтобы понять, как будет работать Ваш сайт на этом хостинге просто перенести свой сайт (в этом поможет поддержка хостинга бесплатно) и и таким образом сможете понять подходит хостинг Вам или нет. На этом хостинге находятся сайты с 20 000 тысяч посещаемость и сайты чувствуют себя отлично. Рекомендую! Да, если делать оплату на 1 год то получаете скидку 25%. И что мне нравится — тех. поддержка всегда помогает в технических вопросах, за что им спасибо. Как Вы понимаете не всегда проходит всё гладко и нет желания, чтобы сайт не был доступен тем самым страдал трафик и доход.
- Не изменять пользовательские настройки браузера и не стирать их.
- Нормализация стилей для большого круга HTML тегов.
- Исправлять ошибки и несовместимости разных браузеров.
- Улучшает юзабилити.
- Обширные комментарии в коде и подробную документацию.
Он использует поддержку огромного количества браузеров (охватывая, конечно и мобильные) и использует свои стили, чтобы нормализовать теги HTML5, включая списки, таблицы, формы, контент и типографику.
Несмотря на то, что он нужен только для нормализации, он еще использует прагматические значения по умолчанию, где они более нужнее.
Normalize или Reset?
Но надо знать и понимать чем отличается normalize.css от reset.css.
Normalize.css не трогает нужные значения, которые установлены по умолчанию.
Reset.css использует свои стили почти для всех элементов и визуально получается все однотипно. И отличается от normalize.css тем, что затирает множество нужных стилей браузера, которые установлены по умолчанию. А это означает одно: вам нужно будет переписать стили для всех распространенных типографических элементов.
Соответственно — когда тег HTML различается стилями в разных браузерах, normalize.css пытается поправить эти стили до возможно однотипного отображения в соответствии с современными стандартами, если это он может сделать.
Normalize.css поправляет распространенные ошибки.
Он правит распространенные ошибки компьютерных и мобильных браузеров, которые не в состоянии поправить reset.css. Это включает в себя параметры отображения элементов HTML5, исправляя font-size для форматирования текста в SVG IE9, и много ошибок, связанные с формами отправки в разных веб-обозревателях и операционных системах.
Например, вот как normalize.css делает новый тег HTML5 input type=[search] кроссбраузерным и стильным:
/** * 1. Addresses appearance set to searchfield in S5, Chrome * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof) */ input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; } /** * Removes inner padding and search cancel button in S5, Chrome on OS X */ input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
Reset.css часто не приносит желаемого результата для браузера. Это очень видно в отношении форм — область, где normalize.css может обеспечить некоторую ощутимую помощь.
Normalize.css не грузит вашу систему отладки.
Обычно вот так в браузере отображается инструмент отладки, когда сброс стилей CSS происходит с помощью простого файла reset. css.
С normalize.css такой проблемы нет, потому что используется несколько селекторов в наборе правил таблиц стилей.
Normalize.css — модульная система.
Проект разбивается на относительно самостоятельные разделы, что делает его легким для вас, чтобы увидеть, какие именно элементы нуждаются в специфических стилей. Кроме того, это дает вам возможность удалить разделы (например, формы) если вы точно знаете, что их никогда не будет на вашем сайте.
У normalize.css есть подробная документация.
Код normalize.css основан на детальном исследовании кроссбраузерности и методического тестирования. Есть подробная документация файла на GitHub Wiki. Это означает, что вы можете выяснить, что каждая строка кода делает, почему она включена, какие различия между браузерами, и более легко запускать свои собственные тесты.
Задача этого проекта — показать людям то, как разные обозреватели отрисовывают элементы по умолчанию, и сделать его проще для них и лучше.
Как пользоваться normalize. css.
Во-первых, установить или загрузить normalize.css из GitHub. Есть 2 основных способа использовать это.
Способ 1: использовать normalize.css как начало для своего собственного проекта CSS, изменяя значения в соответствии с дизайном заказчика.
Способ 2: оставить normalize.css как есть и строить уже непосредственно на нем, чтобы переопределить значения по умолчанию для вашей таблицы стилей при необходимости.
Закрытие комментариев.
Normalize.css очень отличается по своим масштабам и исполнению от reset.css. Это стоит чтобы его использовать и посмотреть, соответствует он вашему подходу к развитию и предпочтению.
Проект развивается открыто на github. Любой желающий может сообщить о проблемах и прислать свои патчи. Полная историю проекта доступна для любого, чтобы видеть как развивается проект и какие изменения вносятся.
Юрич:
Занимаюсь созданием сайтов на WordPress более 6 лет. Ранее работал в нескольких веб-студиях и решил делиться своим опытом на данном сайте. Пишите комментарии, буду рад общению.
Кстати о Normalize.css — Русские Блоги
- Резюме
- Normalize.css vs Reset.css
- Установить, скачать
Резюме
Normalize.css — альтернатива сбросу CSS. После того, как @necolas и @jon neal потратили сотни часов на изучение различий в стилях по умолчанию в разных браузерах, этот проект наконец стал тем, чем он является сейчас.
Мы создали normalize.css для следующих целей:
Защитите полезные стили браузера по умолчанию вместо их полного удаления
Общий стиль: для большинства элементов HTML.
Исправьте собственные ошибки браузера и обеспечьте согласованность каждого браузера.
Оптимизация удобства использования CSS: воспользуйтесь некоторыми советами
Объясните код: используйте комментарии и подробную документацию, чтобы
Normalize.css поддерживает множество браузеров, включая мобильные браузеры, а также обобщает элементы HTML, макет, списки, встроенный контент, формы и таблицы. Хотя в этом проекте есть общие принципы, мы по-прежнему используем более практичные значения по умолчанию, где это необходимо.
Normalize.css — это всего лишь небольшой файл css, но он обеспечивает высокую степень согласованности между браузерами в стиле элемента HTML по умолчанию. По сравнению с традиционным сбросом css, Normalize.css — современная высококачественная альтернатива HTML5. Normalize.css теперь используется в Twitter Bootstrap, HTML5 Boilerplate,GOV.UK, Rdio, CSS Tricks и многие другие фреймворки, инструменты и веб-сайты.
Normalize.css vs Reset.css
Очень важно знать разницу между Normalize.css и традиционным.
1.Normalize.css защищает ценные значения по умолчанию
Reset использует стили по умолчанию почти для всех элементов, чтобы заставить элементы иметь одинаковый визуальный эффект. Напротив, Normalize.css поддерживает множество стилей браузера по умолчанию. Это означает, что вам больше не нужно изменять стиль всех общедоступных типографских элементов. Когда элемент имеет разные значения по умолчанию в разных браузерах, Normalize.css будет стремиться сделать эти стили согласованными и соответствовать современным стандартам.
2.Normalize.css исправляет ошибку браузера
В нем исправлены распространенные ошибки браузеров настольных компьютеров и мобильных устройств. Часто это выходит за рамки того, что может сделать Reset. На этом этапе проблемы, исправляемые Normalize.css, включают настройки отображения элементов HTML5, проблему размера шрифта форматированного текста, переполнение SVG в IE9 и многие формы, связанные с браузерами и операционными системами. ошибка.
Вы можете взглянуть на следующий пример, чтобы увидеть, как Normalize.css гарантирует кроссбраузерность для нового поиска типа ввода в HTML5.
/** *1.Addresses appearance set to searchfield in ss,Chrome *2Addresses box-size set to border-box in ss,Chrome(include -moz to future-proof) */ input[type="search"]{ -weblit-appearance:textfield;/* 1 */ -moz-box-sizing:content-box; -webkit-box-sizing:content-box;/* 2 */ box-sizing:content-box; } /** *Removes inner padding and search candle button in ss,Chrome on OS X */ input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-candle-button{ -webkit-apprance:none; }
3. Normalize.css не испортит ваши инструменты отладки
Самым неприятным аспектом использования Reset является использование больших цепочек наследования в инструментах отладки браузера. В Normalize.css такой проблемы нет, потому что в наших рекомендациях использование нескольких селекторов очень осторожно, и мы стилизуем элементы только с определенной целью.
4.Normalize.css является модульным
Этот проект разделен на несколько связанных, но независимых частей, что позволяет легко и ясно узнать, для каких элементов установлены определенные значения. Таким образом, это позволяет вам выборочно удалять определенные части, которые вы никогда не будете использовать (например, обобщение форм).
5.Normalize.css имеет подробную документацию
Адрес GitHub:https://github.com/necolas/normalize.css
Код Normalize.css основан на подробном и всестороннем кроссбраузерном исследовании и тестировании. Этот файл имеет подробные описания кода и дополнительные описания в Github Wiki. Это означает, что вы можете точно знать, какую работу выполняет каждая строка кода, зачем вы пишете этот код, различия между браузерами, и вам будет проще реализовать свои собственные тесты.
Цель этого проекта — помочь людям понять, как браузер обрабатывает элементы по умолчанию, а также упростить понимание того, как улучшить отображение в браузере.
6. Как использовать Normalize.css
Сначала установите или загрузите Normalize.css из Github. После импорта Normalize.css не изменяйте код в Normalize.css. Если вам нужно изменить стиль, напишите стиль, чтобы перезаписать его.
Установить, скачать
1、NPM
npm install --save normalize.css
2、CDN
https://yarnpkg.com/en/package/normalize.css
3、Download
https://necolas.github.io/normalize.css/latest/normalize.css
Normalize css что это
Что такое normalize css ?
Все браузеры имеют свой собственный CSS для рендеринга элементов. Обратите внимание, как по-разному выглядит кнопка отправки в операционных системах и приложениях браузера. CSS страницы по умолчанию гарантирует, что каждый файл, независимо от того, насколько он прост, доступен для чтения. Дело в том, что все сss-стили по умолчанию разные, потому что они придерживаются бренда авторской компании. Если вы разрабатываете пользовательский интерфейс, последнее, что вам нужно, — это непоследовательность. Есть два варианта очистки css: Сбросить все стили: буквально сбрасывает каждый элемент HTML в его состояние по умолчанию. Дизайнер строит ВСЕ с нуля. Это дает вам абсолютный контроль, но также требует большей работы. Даже ваши списки или теги заголовков больше не оформлены. Весь документ выглядит как обычный текст с разрывами строк и без полей или отступов. Normalize all styles: если вы не хотите перестраивать каждый элемент с нуля, это промежуточная мера, она позволяет вам иметь относительно согласованный рендеринг элементов во всех браузерах и операционных системах, что делает ваше приложение более красивым и удобным в использовании и читке. Данный метод помогает вам сделать примерно одинаковый вид во всех браузерах(включая мобильные) .Пользовательские css стили также соответствуют. Большую часть времени вы хотите нормализовать. Если у вас действительно продвинутый дизайн, вы сбросите настройки.
About normalize.css
Normalize.css is a small CSS file that provides better cross-browser consistency in the default styling of HTML elements. It’s a modern, HTML5-ready, alternative to the traditional CSS reset.
- Normalize.css project site
- Normalize.css source on GitHub
Normalize.css is currently used in some form by Twitter Bootstrap, HTML5 Boilerplate, GOV.UK, Rdio, CSS Tricks, and many other frameworks, toolkits, and sites.
Overview
Normalize.css is an alternative to CSS resets. The project is the product of 100’s of hours of extensive research by @necolas and @jon_neal on the differences between default browser styles.
The aims of normalize. css are as follows:
- Preserve useful browser defaults rather than erasing them.
- Normalize styles for a wide range of HTML elements.
- Correct bugs and common browser inconsistencies.
- Improve usability with subtle improvements.
- Explain the code using comments and detailed documentation.
It supports a wide range of browsers (including mobile browsers) and includes CSS that normalizes HTML5 elements, typography, lists, embedded content, forms, and tables.
Despite the project being based on the principle of normalization, it uses pragmatic defaults where they are preferable.
Normalize vs Reset
It’s worth understanding in greater detail how normalize.css differs from traditional CSS resets.
Normalize.css preserves useful defaults
Resets impose a homogenous visual style by flattening the default styles for almost all elements. In contrast, normalize.css retains many useful default browser styles. This means that you don’t have to redeclare styles for all the common typographic elements.
When an element has different default styles in different browsers, normalize.css aims to make those styles consistent and in line with modern standards when possible.
Normalize.css corrects common bugs
It fixes common desktop and mobile browser bugs that are out of scope for resets. This includes display settings for HTML5 elements, correcting font-size for preformatted text, SVG overflow in IE9, and many form-related bugs across browsers and operating systems.
For example, this is how normalize.css makes the new HTML5 search input type cross-browser consistent and stylable:
Resets often fail to bring browsers to a level starting point with regards to how an element is rendered. This is particularly true of forms – an area where normalize.css can provide some significant assistance.
Normalize.
css doesn’t clutter your debugging toolsA common irritation when using resets is the large inheritance chain that is displayed in browser CSS debugging tools.
A common sight in browser debugging tools when using a CSS reset
This is not such an issue with normalize.css because of the targeted styles and the conservative use of multiple selectors in rulesets.
Normalize.css is modular
The project is broken down into relatively independent sections, making it easy for you to see exactly which elements need specific styles. Furthermore, it gives you the potential to remove sections (e.g., the form normalizations) if you know they will never be needed by your website.
Normalize.css has extensive documentation
The normalize.css code is based on detailed cross-browser research and methodical testing. The file is heavily documented inline and further expanded upon in the GitHub Wiki. This means that you can find out what each line of code is doing, why it was included, what the differences are between browsers, and more easily run your own tests.
The project aims to help educate people on how browsers render elements by default, and make it easier for them to be involved in submitting improvements.
How to use normalize.css
First, install or download normalize.css from GitHub. There are then 2 main ways to make use of it.
Approach 1: use normalize.css as a starting point for your own project’s base CSS, customising the values to match the design’s requirements.
Approach 2: include normalize.css untouched and build upon it, overriding the defaults later in your CSS if necessary.
Closing comments
Normalize.css is significantly different in scope and execution to CSS resets. It’s worth trying it out to see if it fits with your development approach and preferences.
The project is developed in the open on GitHub. Anyone can report issues and submit patches. The full history of the project is available for anyone to see, and the context and reasoning for all changes can be found in the commit messages and the issue threads.
Related reading
Translations
Nicolas Gallagher lives and works in San Francisco. He’s on Twitter and shares software using GitHub.
Зачем нужен нормализатор CSS
Когда веб-разработчик создаёт новый сайт, он хочет, чтобы в каждом браузере этот сайт выглядел одинаково. Но у каждого браузера есть свои стандарты отступов, оформления ссылок или форматирования блоков. В результате то, что в «Хроме» выглядит хорошо, в «Сафари» может выглядеть не очень, а в «Мозилле» вообще разрывает.
Для примера возьмём простой код, который нарисует нам на странице несколько стандартных элементов:
- две горизонтальных линии-разделителя,
- поле ввода с текстом внутри,
- кнопку,
- текст со ссылкой.
А после этого посмотрим, как выглядит этот код в разных браузерах.
Почему так происходит
Несмотря на то что внутри многих разных браузеров стоят одинаковые движки, у каждой компании свои представления о прекрасном и о том, как отображать разные HTML-элементы и CSS-стили. Например, в разных браузерах могут отличаться:
- толщина линий обводки,
- радиус скругления,
- размер текста,
- внешние и внутренние отступы у элементов,
- правила оформления ссылок,
- формы и кнопки.
Всё это записано в стандартных стилях браузера. Каждый раз, когда браузер встречает элемент, у которого не задан один из параметров, он берёт его из своей встроенной таблицы стилей. Разные браузеры — разные стили.
При этом браузер справится со своей основной задачей — показать HTML-страницу в понятном для пользователя виде. Но если веб-разработчик хочет, чтобы сайт выглядел идентично в каждом браузере, он должен предусмотреть это заранее и прописать в стилях.
Что такое нормализатор стилей
Чтобы сайт выглядел в каждом браузере почти одинаково, разработчики используют нормализатор стилей — normalize.css. По сути это просто большой CSS-файл, который делает следующее:
- стандартизирует все отступы;
- устанавливает единый размер шрифта;
- приводит к единому внешнему виду все формы, кнопки и элементы на странице;
- устанавливает для всех браузеров единые начальные параметры для форматирования текста, изображений и стандартных элементов.
Для этого нормализатор использует специальные CSS-команды, чтобы каждому браузеру объяснить на его языке, что нужно сделать.
Пример
Код ниже делает две вещи:
- Устанавливает одинаковую высоту строки во всех браузерах.
- Предотвращает изменения размера шрифта в iOS при повороте экрана.
-webkit-text-size-adjust — это специальная команда, которая состоит из двух частей:
-webkit, который сообщает, что эта команда относится к браузерам на движке WebKit. Остальные браузеры проигнорируют эту команду, а, например, Safari в iOS поймёт, что это команда для неё.
text-size-adjust — команда, которая говорит браузеру, какой размер шрифта нужно использовать.
Получается, что все браузеры поймут первую команду line-height , потому что она стандартная для всех браузеров, а на вторую -webkit-text-size-adjust среагируют только те браузеры, у которых могут быть проблемы с отображением размера текста (например, Safari).
Как использовать
Подключить нормализатор как обычную CSS-таблицу стилей к своей странице:
Ещё вариант — можно взять нормализатор и использовать его как шаблон или основу для собственной таблицы стилей. Так в одном файле вы получите одинаковое отображение в браузерах и нужные настройки внешнего вида страницы.
Вот как будут выглядеть наши страницы после подключения нормализатора:
Но что-то же всё равно отличается даже на этих скриншотах!
Конечно, потому что этот нормализатор не может предусмотреть и настроить всё. Он оставляет фирменное оформление полей ввода и кнопок для каждого браузера, чтобы нормализованные элементы не выглядели чужеродно в родном браузере.
При этом вы можете на его основе сделать свой нормализатор, который предусматривает гораздо больше разных неочевидных случаев. Опытные разработчики, кстати, со временем так и делают — пишут свой нормализатор на основе собственного опыта и тех проблем в разработке, в которыми они сталкивались.
Это единственный нормализатор?
Нет, на самом деле их много. Просто этот самый популярный и проверенный.
Что дальше
Кроме нормализаторов есть ещё ресеты — они сбрасывают вообще все настройки в ноль, чтобы можно было установить всё вручную. Когда-нибудь доберёмся и до них.
Нормализовать CSS или Сбросить CSS?!. Архитектура CSS — Часть 1 | by Elad Shechter
Архитектура CSS — Часть 1
Как правило, мы хотим, чтобы HTML-элементы выглядели одинаково, независимо от того, какой браузер используется для их просмотра. К сожалению, это не так из-за того, как работают браузеры.
Вопрос о том, какой подход использовать для устранения различий между стилями пользовательского агента, является постоянным спором между Нормализация CSS и Сброс CSS .
Прежде чем мы углубимся в то, как я рекомендую работать правильно, я хотел бы объяснить эти два термина тем из вас, кто с ними не знаком.
Стили пользовательского агента CSS
Когда браузер отображает HTML-страницу, он применяет базовые стили еще до того, как вы написали хотя бы один стиль. Например, HTML-теги с по
во всех браузерах отличаются от обычного текста: в целом размер их шрифта больше, их вес шрифта жирный (
вес шрифта: полужирный
), и у них есть поля сверху и снизу.
стили по умолчанию в chrome
Хотя все браузеры применяют свои основные стили, каждый браузер имеет свои особые стили, отличные от других браузеров, и это, конечно, вызывает проблему несогласованности. Это проблема, о которой мы поговорим в этом посте.
Попытка решить проблему несогласованности браузера породила два подхода: подход «Нормализовать CSS» и подход «Сброс CSS» 9.0010 . Вкратце, мы можем описать Normalize CSS как мягкое решение и Reset CSS как более агрессивное решение . Теперь уточним.
Нормализовать CSS
Нормализовать . css — это небольшой файл CSS , обеспечивающий кросс-браузерную согласованность стилей HTML-элементов по умолчанию.
Это означает, что если мы посмотрим на стандарты W3C стилей, применяемых браузерами, и обнаружим несоответствие в одном из браузеров, то normalize.css
стили исправят стиль браузера, в котором есть разница.
Но в некоторых случаях мы не можем исправить неисправные браузеры по стандарту, обычно из-за IE или EDGE. В этих случаях исправления в Normalize будут применять стили IE или EDGE к остальным браузерам.
Вот пример из реальной жизни : Chrome, Safari и Firefox отображают тегов
, которые находятся внутри
/ /
/
с размером шрифта меньше, чем у независимого тега , и с другим размером поля. Это стили пользовательского агента в Chrome, Safari и Firefox в случае тега
внутри тега
/ /
/
:
:-webkit-any(статья,в стороне,навигация,раздел) h2 {
размер шрифта: 1. 5em;
начало блока поля: 0,83 em;
край-блок-конец: 0,83 em;
}
Браузеры Internet Explorer и EDGE составляют меньшинство со стилями, которые они применяют в этом случае, и теоретически стили, определенные в normalize.css
, будут нацелены на IE/EDGE. Однако невозможно настроить таргетинг на IE/EDGE, поскольку в этих браузерах нет селектора «любой» . Поэтому, чтобы нормализовать для сброса стилей , чтобы они действовали одинаково для всех браузеров, Normalize CSS определяет стили IE/EDGE, которые должны применяться всеми браузерами.
Пример:
/*
Исправьте размер шрифта и поля для элементов h2 в контекстах section и article в Chrome, Firefox и Safari.
*/
h2 { размер шрифта: 2em; margin: 0.67em 0;}
Normalize.css — это постоянно обновляемый проект с открытым исходным кодом на Github, созданный Николасом Галлахером.
necolas/normalize.css
Современная альтернатива сбросу CSS.
Внесите свой вклад в разработку necolas/normalize.css, создав учетную запись на GitHub.github.com
Reset CSS
Reset CSS использует другой подход и говорит, что нам вообще не нужны стили браузеров по умолчанию. Какие стили нам нужны, мы определим в проекте в соответствии с нашими потребностями. Таким образом, «Сброс CSS» сбрасывает все стили , которые поставляются с пользовательским агентом браузера.
Этот подход хорошо работает в приведенном выше примере со стилями по умолчанию от до
:0017 размер шрифта и размер поля браузера по умолчанию
.
В Интернете существует несколько типов сброса CSS. Вот пример того, как выглядит небольшая часть сброса CSS (из CSS Reset Эрика Мейера):
html, body, div, span, applet, object, iframe, h2, h3, h4, h5, h5, h6, p, цитата, pre, a, abbr, аббревиатура, адрес, большой, цитировать, код, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, холст, детали, вставка, рисунок, figcaption, нижний колонтитул, заголовок, hgroup, меню, навигация, вывод, ruby, раздел, сводка, время, отметка, аудио, видео {
поле: 0;
заполнение: 0;
граница: 0;
размер шрифта: 100%; шрифт
: наследовать;
вертикальное выравнивание: базовая линия;
}
В способе сброса CSS мы определяем, что все теги HTML не имеют отступов, полей, рамок, имеют одинаковый размер шрифта и одинаковое выравнивание.
Проблема с CSS Resets в том, что они уродливы: у них большая цепочка селекторов, и они делают много ненужных переопределений. И что еще хуже, они нечитаемы при отладке.
Сброс CSS — цепочка уродливых селекторов CSS Но все же есть стили, которые мы предпочитаем сбрасывать, такие как в
,
,
и т. д.
Я предлагаю вам использовать Нормализация CSS с помощью немного сброса CSS. Используйте их оба, но с умом!
В своих проектах я использую преимущества каждого из методов. С одной стороны, мне нужны преимущества Normalize CSS , а в других случаях мне нужны преимущества .CSS Reset без этих больших цепочек уродливых селекторов CSS.
Создание собственного сброса CSS
За свой 13-летний опыт я понял, что есть HTML-теги, которые всегда нужно сбрасывать. Например, цвет ссылок, стили кнопок по умолчанию, списки по умолчанию и т. д.
Помимо normalize.css
, который я использую, я добавляю reset.local.css
со всеми стилями, которые я хочу переопределить. В отличие от обычного сброса CSS , я ориентируюсь только на определенные стили HTML-тегов, а не делаю большой список тегов.
Вот пример как сделать свой собственный сброс CSS :
Мой сброс CSS — reset.local.css
/****** СБРОС Элада Шехтера ****** */
/*** размер окна border-box для всех элементов ***/
*,
*::before,
*::after{ box-sizing:border-box; } a {украшение текста:нет; цвет:наследовать; курсор: указатель;}
кнопка {фоновый цвет: прозрачный; цвет:наследовать; ширина границы: 0; заполнение: 0; курсор:указатель;}
рисунок {поле:0;}
ввод::-moz-focus-inner {граница:0; заполнение: 0; поле:0;}
ul, ol, dd {margin:0; заполнение: 0; стиль списка: нет;}
h2, h3, h4, h5, h5, h6 {поле: 0; размер шрифта: наследовать; font-weight:inherit;}
p {margin:0;}
cite {font-style:normal;}
fieldset {border-width:0; заполнение: 0; margin:0;}
Таким образом, сброс CSS становится намного менее агрессивным и намного более читабельным с любой точки зрения.
Базовая типографика
Помимо normalize.css
и local.reset.css
, которые есть во всех моих проектах, я добавляю еще один файл для базовой типографики. Этот файл не является частью ни normalize CSS , ни CSS reset , это базовая таблица стилей с типографикой веб-сайта, содержащая такие свойства, как direction
, font-family
, font-size
, line- высота
, цвет шрифта.
типография.css
html{
размер шрифта: 1px;/*для использования модулей REM*/
}body{
семейство шрифтов: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu ', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', без засечек;
размер шрифта: 16rem;
вес шрифта: 400;
высота строки: 1,3;
цвет: #222;
}
Собираем все вместе
Используя преимущества препроцессора SASS, у меня есть файл _reset. scss
, который включает все эти части:
- Normalize.css — последняя версия CSS Normalize с GitHub.
- Мой собственный Сброс CSS
- A Basic Typography Файл
Пример (файл _resets.scss):
@import "resets/normalize.scss";
@import "resets/reset.local.scss";
@import "resets/typography.scss";
В этом посте я показал вам свою архитектуру CSS для нормализации и сброса стилей, основанную на многих вещах, которые я изучил за эти годы.
Этот пост является первым в серии статей об архитектуре CSS, которые я буду писать и делиться с вами каждые несколько недель.
Если эта тема CSS вас интересует, вы можете подписаться на меня в Twitter или Medium .
- Нормализовать CSS или сбросить CSS?!
- Архитектура CSS — структура папок и файлов
- Архитектура CSS для нескольких веб-сайтов
- Именование вещей в CSS
Надеюсь, вам понравилась эта статья и вы узнали из моего опыта.
Если вам понравился этот пост, буду благодарен за аплодисменты и репост 🙂
Другие мои посты о CSS:
Новые логические свойства CSS!
CSS Position Sticky — как это работает на самом деле!
Кто я?
Я Элад Шехтер, веб-разработчик, специализирующийся на дизайне и архитектуре CSS и HTML. Я работаю в Investing.com.
Вы можете связаться или подписаться на меня:
My Twitter
Facebook
LinkedIn
Вы можете найти меня в моих группах Facebook:
Мастера CSS
Мастера CSS Израиль
О normalize.css — Николас Галлахер
Normalize.css — это небольшой файл CSS, обеспечивающий лучшую кросс-браузерную согласованность стилей HTML-элементов по умолчанию. Это современная, готовая к HTML5 альтернатива традиционному сбросу CSS.
- Сайт проекта Normalize.css
- Источник Normalize.css на GitHub другие фреймворки, наборы инструментов и сайты.
Обзор
Normalize.css — это альтернатива сбросу CSS. Проект является результатом сотен часов обширных исследований @necolas и @jon_neal различий между стилями браузера по умолчанию.
Назначение normalize.css:
- Сохранить полезные настройки браузера по умолчанию , а не стирать их.
- Нормализация стилей для широкого спектра элементов HTML.
- Исправление ошибок и общих несоответствий браузера.
- Повышение удобства использования за счет незначительных улучшений.
- Объясните код , используя комментарии и подробную документацию.
Он поддерживает широкий спектр браузеров (включая мобильные браузеры) и включает CSS, который нормализует элементы HTML5, типографику, списки, встроенное содержимое, формы и таблицы.
Несмотря на то, что проект основан на принципе нормализации, он использует прагматические значения по умолчанию там, где они предпочтительнее.
Нормализация и сброс
Стоит подробнее разобраться, чем normalize.css отличается от традиционных сбросов CSS.
Normalize.css сохраняет полезные значения по умолчанию
Сбросы создают однородный визуальный стиль, сглаживая стили по умолчанию почти для всех элементов. Напротив, normalize.css сохраняет множество полезных стилей браузера по умолчанию. Это означает, что вам не нужно повторно объявлять стили для всех общих типографских элементов.
Когда элемент имеет разные стили по умолчанию в разных браузерах, normalize.css стремится сделать эти стили согласованными и, по возможности, соответствующими современным стандартам.
Normalize.css исправляет распространенные ошибки
Он исправляет распространенные ошибки настольного и мобильного браузера, которые не подлежат сбросу. Это включает в себя настройки отображения для элементов HTML5, исправление размера шрифта
Например, вот как normalize.css делает новый тип ввода HTML5
search
кросс-браузерным согласованным и стильным:/**
* 1. Внешний вид адресов настроен на поле поиска в S5, Chrome 9.0080 * 2. Адреса box-sizing установлены на border-box в S5, Chrome (включите -moz для будущего)
*/input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: поле содержимого; /* 2 */
box-sizing: content-box;
}/**
* Удаляет внутренние отступы и кнопку отмены поиска в S5, Chrome на OS X
*/input[type="search"]::-webkit-search-decoration,
input[type= "поиск"]::-webkit-search-cancel-button {
-webkit-внешний вид: нет;
}Сбросы часто не приводят браузеры к исходной точке уровня в отношении того, как отображается элемент. Это особенно верно для форм — области, где normalize.css может оказать существенную помощь.
Normalize.
css не загромождает ваши инструменты отладкиРаспространенным раздражением при использовании сбросов является большая цепочка наследования, отображаемая в инструментах отладки CSS браузера.
Обычное явление в средствах отладки браузера при использовании сброса CSSЭто не такая проблема с normalize.css из-за целевых стилей и консервативного использования нескольких селекторов в наборах правил.
Normalize.css является модульным
Проект разбит на относительно независимые разделы, что позволяет вам легко увидеть, какие именно элементы нуждаются в определенных стилях. Кроме того, это дает вам возможность удалять разделы (например, нормализацию форм), если вы знаете, что они никогда не понадобятся вашему веб-сайту.
Normalize.css имеет обширную документацию
Код normalize.css основан на подробном кросс-браузерном исследовании и методическом тестировании. Файл подробно задокументирован и дополнительно расширен в GitHub Wiki. Это означает, что вы можете узнать, что делает каждая строка кода, почему она была включена, каковы различия между браузерами и более легко запускать свои собственные тесты.
Целью проекта является информирование людей о том, как браузеры отображают элементы по умолчанию, и облегчение участия в представлении улучшений.
Как использовать normalize.css
Сначала установите или загрузите normalize.css с GitHub. Тогда есть 2 основных способа его использования.
Подход 1: используйте normalize.css в качестве отправной точки для базового CSS вашего собственного проекта, настраивая значения в соответствии с требованиями дизайна.
Подход 2: включить normalize.css без изменений и использовать его, переопределяя значения по умолчанию позже в вашем CSS, если это необходимо.
Заключительные комментарии
Normalize.css значительно отличается по объему и выполнению от сбросов CSS. Стоит попробовать его, чтобы увидеть, соответствует ли он вашему подходу к разработке и предпочтениям.
Проект разрабатывается в открытом доступе на GitHub. Любой может сообщить о проблемах и отправить исправления. Вся история проекта доступна для просмотра всем, а контекст и причины всех изменений можно найти в сообщениях коммитов и в обсуждениях проблем.
Связанное чтение
Подробная информация о стилях UA по умолчанию: предложения WHATWG по отображению HTML-документов, таблицы стилей агента пользователя Internet Explorer и таблицы стилей агента пользователя CSS2.1 по умолчанию.
Переводы
- О normalize.css
- О normalize.css (итальянский)
- 关于Normalize.css
Что такое нормализованный CSS-файл и как его использовать?
- Блог Hubspot
- HubSpot.com
Загрузка
О нет! Мы не смогли найти ничего подобного.
Попробуйте еще раз поискать, и мы сделаем все возможное.
Работа с CSS может быть сложной; он может очень быстро стать громоздким без исходной базовой линии. К счастью, есть способы начать использовать CSS, чтобы сделать ваши страницы чистыми и управляемыми. Одним из примеров является использование файла, создающего набор базовых стилей, например файла Normalize CSS.
Этот пост расскажет вам о файле Normalize CSS и его использовании. Кроме того, вы узнаете, почему одни разработчики предпочитают его другим. Вы также узнаете, как понять, как это работает, и как это реализовать. Наконец, в посте будут рассмотрены некоторые примеры кода из файла Normalize.
Начнем.
Что делает нормализовать CSS?
Все браузеры назначают значения по умолчанию определенным свойствам CSS, и каждый браузер устанавливает разные. Чтобы смягчить это несоответствие, можно использовать файл Normalize CSS для создания базовой линии для браузеров по всем направлениям. Каждый браузер имеет разные правила стиля по умолчанию; они нацелены на другие элементы и применяют разные значения. В результате создание стилей без базовой линии означает, что ваши страницы, скорее всего, будут отображаться в разных браузерах непоследовательно.
Для многих разработчиков это привело к осознанию необходимости отладки CSS. Улавливание этого на поздних этапах разработки может привести к тому, что код станет неуправляемым и сложным для устранения неполадок. Normalize стремится решить эту проблему, ориентируясь на правила по умолчанию из разных браузеров. Файл Normalize устанавливает значения по умолчанию для этих правил, чтобы создать базовый уровень.
Если сначала включить его в объявления файла CSS, ваш CSS будет начинаться с одинаковых правил для каждого браузера. Файл Normalize — это только один файл, используемый для выполнения этой функции, а другой похожий файл называется CSS Reset. Хотя они оба служат одной и той же цели, они делают это по-разному. Далее рассмотрим различия между ними.
На следующем изображении показано, что браузер по умолчанию использует для первой веб-страницы.
На следующем изображении показана та же страница, но с файлом нормализации в верхней части вашего CSS.
Сброс CSS и нормализация
Файлы нормализации и сброса используются для создания базовых стилей для согласованности между браузерами при создании веб-страниц. Основное отличие заключается в том, что целью Normalize является выявление различных стилей в других браузерах, начиная со стилей, которые разработчики не могут изменить. Если стиль нельзя исправить или обновить, этот стиль будет применен к странице во всех браузерах. Посмотрите видео ниже, чтобы узнать больше о разнице между двумя файлами.
В случае файла Reset CSS стили браузера по умолчанию обрабатываются иначе. Reset CSS направлен на устранение несоответствий путем удаления всех стилей по умолчанию. Этот процесс изменяет правила со значениями на ноль или минимальное значение. Поэтому, хотя он удаляет значения по умолчанию, он устанавливает значения на абсолютный минимум.
Пример нормализовать CSS
Теперь, когда у вас есть общее представление о том, как работает файл Normalize, давайте рассмотрим пример кода из него. Следующий код обрабатывает нормализацию высоты строки в браузерах для обеспечения согласованности.
/**
* 1. Исправьте высоту строки во всех браузерах.
* 2. Запретить регулировку размера шрифта после изменения ориентации в iOS.
*/
html {
line-height: 1,15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
Приведенный выше код также обрабатывает изменения размера шрифта iOS при изменении ориентации телефона. Этот код является небольшим примером различных правил стиля, предназначенных для файла Normalize CSS. Напротив, файл Reset просто меняет значения на минимум.
Начало работы с использованием файла нормализации CSS
Существует множество версий файла нормализации, созданных разработчиками, которые предпочитают разные значения по умолчанию. Лучший способ понять, как использовать файл Normalize, — загрузить одну из его многочисленных версий и погрузиться в код. Изучая код и изучая, как настроен каждый файл Normalize, вы сможете лучше понять, как каждый из них может помочь в вашей веб-разработке.
Изучение опыта и идей разработчиков, которые их использовали, также может помочь лучше понять ваш уровень комфорта с различными типами файлов Normalize.
Темы: Начальная загрузка и CSS
Не забудьте поделиться этим постом!
Связанные статьи
14 лучших редакторов кода HTML и CSS на 2022 год
19 сент. 2022 г.
905:50
Базовое пошаговое руководство по блочной модели CSS
31 августа 2022 г.
Как использовать область просмотра CSS
29 августа, 2022 г.
Как центрировать текст и заголовки в CSS с помощью свойства Text-Align
24 августа 2022 г.
hubspot.com/website/css-rem»>Свойство CSS Position: все, что вам нужно знать
17 августа 2022 г.
Вот разница между Flexbox, CSS Grid и Bootstrap
16 августа 2022 г.
11 способов центрировать Div или текст в Div в CSS
09 августа 2022 г.
Что такое файл нормализованного CSS и как его использовать?
01 августа 2022 г.
hubspot.com/website/tailwind-css-vs-bootstrap»>
Что такое рем? (и как их использовать в CSS)
23 августа 2022 г.
TailWind CSS против Bootstrap: в чем разница и какой из них лучше?
01 августа 2022 г.
Разница между «сбросом» и «нормализацией» в CSS
CSS (каскадные таблицы стилей) — это язык таблиц стилей для описания представления документа HTML или XML (включая диалекты XML, такие как SVG, MathML или XHTML). CSS определяет, как элементы должны отображаться на экране, на бумаге, в речи или в других формах медиа.
При использовании CSS разработчик может столкнуться с несоответствиями в настройках браузера, таких как высота строки по умолчанию, поля, размеры шрифта заголовков и т. д. Некоторые браузеры, например, используют левое поле для отступа неупорядоченных и упорядоченных списков, тогда как другие используют левое заполнение. Верхние и нижние поля заголовков немного отличаются, расстояния между отступами различаются и т. д. Вот где Сброс и Нормализация CSS позволяет сделать это значение по умолчанию более согласованным в разных браузерах и, таким образом, тратить меньше времени на борьбу с браузерными значениями по умолчанию.
Давайте кратко рассмотрим эти методы:
Сброс CSS: Сброс CSS — это набор стилей, которые вы загружаете перед другими стилями, чтобы удалить встроенные стили браузера. Каждый браузер имеет свою собственную таблицу стилей агента пользователя , которую он использует, чтобы сделать веб-сайты без стилей более читабельными. Большинство браузеров, например, по умолчанию делают ссылки синими, а посещенные ссылки фиолетовыми, добавляют границы и отступы к таблицам, применяют различные размеры шрифта до 9.0009 h2, h3, h4, и практически все, и почти ко всему применяется определенное количество отступов.
Вы когда-нибудь задумывались, почему кнопки «Отправить» отображаются по-разному в разных браузерах?
Очевидно, это сильно огорчает авторов CSS, потому что они не могут понять, как сделать так, чтобы их веб-сайты выглядели одинаково во всех браузерах. Авторы CSS могут использовать сброс CSS, чтобы сбросить стиль каждого браузера до нулевого, минимизируя различия между браузерами, насколько это возможно. Затем вы можете изменить стиль своего контента, используя согласованную базу, которую вы установили при сбросе, будучи уверенным, что различия браузеров в их стандартном отображении HTML не повлияют на вас!
Используя сброс CSS, авторы CSS могут принудительно сбросить все стили каждого браузера до нуля, таким образом избегая различий между браузерами, насколько это возможно.
Например, чтобы установить для всех элементов одинаковую толщину и стиль шрифта, мы используем:
насыщенность шрифта: inherit; стиль шрифта: наследовать; семейство шрифтов: наследовать;
НО, браузер Internet Explorer не поддерживает наследование , , поэтому автоматическое наследование значений не произойдет, и пользовательский интерфейс будет выглядеть сломанным при просмотре в IE. Сброс помогает решить подобные проблемы при сохранении пользовательского интерфейса.
Пример: В этом примере мы увидим, как использовать технику сброса CSS, которая будет загружена перед другими стилями для удаления встроенных стилей браузера.
reset.html
HTML
|
Output:
Resetting CSS
Нормализация CSS: Нормализация CSS улучшает согласованность между браузерами в стилях HTML-элементов по умолчанию пользовательского агента браузера. Это дружественная к HTML5 замена стандартного сброса CSS.
Нормализация преследует следующие цели:
- Сохранить полезные браузеры по умолчанию вместо их удаления.
- Стандартизируйте стили для самых разных элементов HTML.
- Исправлены ошибки и непоследовательность распространенных браузеров.
- Повысьте удобство использования за счет незначительных улучшений.
- Используйте комментарии и подробную документацию для объяснения кода.
Теперь давайте перейдем к разрешению вопроса о том, что лучше и что следует использовать из этих двух методов для сглаживания CSS. Нормализация сохраняет полезные значения по умолчанию по сравнению со всем, что не стилизовано, и не загромождает окно инструментов разработчика. Кроме того, сброс предназначен для удаления всех стилей браузера по умолчанию для элементов. Например, поля, отступы, размеры шрифта всех элементов сбрасываются, чтобы быть одинаковыми. Вам придется повторно объявить стили для обычных типографских элементов, с другой стороны, нормализация сохраняет полезные стили по умолчанию, а не удаляет все стили. Нормализация CSS — это более новая технология, чем старый Resetting CSS, поэтому она модульная и простая в использовании. Наконец, поскольку теперь мы знаем разницу между сбросом и нормализацией, мы понимаем, что они не сильно отличаются, поскольку оба борются за предотвращение нарушения пользовательского интерфейса веб-страницы. Это всего лишь вопрос подхода, который используют обе эти техники, на основе которого вы можете решить, какую из них вы должны использовать вместе со своей работой.
Пример: В этом примере мы увидим, как использовать технику нормализации CSS.
normalize.html
HTML
|
Выходность:
. 0002 Ниже приведена таблица различий между сбросом и нормализуемой :
Сброс | . Нормализующие | Обеспечивает согласованность между браузерами в стилях HTML-элементов по умолчанию, предоставляемых агентом пользователя браузера. |
Сброс имеет большую цепочку селекторов, и они делают много ненужных переопределений в стиле. | Не так много больших цепочек селекторов CSS, которые можно увидеть при нормализации, поскольку она использует стили агента пользователя. |
Трудно отлаживать, так как выявить ошибки практически невозможно. | Простая отладка при нормализации |
Немодульный сброс (нет разбиения разделов в стилях) | Нормализация модульная (стили разделены на разделы для простоты) |
Normalize.0cs | CSS Reset
«Современная, готовая к HTML5 альтернатива сбросу CSS»
Normalize. css — это настраиваемый файл CSS, благодаря которому браузеры отображают все элементы более последовательно и в соответствии с современными стандартами. Мы исследовали различия между стилями браузера по умолчанию, чтобы точно ориентироваться только на те стили, которые нуждаются в нормализации.
Проверьте это:
/*! нормализовать.css v3.0.2 | Лицензия Массачусетского технологического института | git.io/нормализовать */ /** * 1. Установите семейство шрифтов по умолчанию на без засечек. * 2. Предотвратить настройку размера текста iOS после изменения ориентации без отключения * Пользовательский зум. */ HTML { семейство шрифтов: без засечек; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } /** * Удалить поля по умолчанию. */ тело { маржа: 0; } /* Определения отображения HTML5 ================================================== ======================== */ /** * Правильное отображение блока не определено ни для одного элемента HTML5 в IE 8/9. . * Правильное отображение «блока» не определено для «деталей» или «сводки» в IE 10/11. * и Фаерфокс. * Правильное отображение `block` не определено для `main` в IE 11. */ статья, в сторону, Детали, рисунок, фигура, нижний колонтитул, заголовок, группа, главный, меню, навигация, раздел, резюме { дисплей: блок; } /** * 1. Правильное отображение `inline-block` не определено в IE 8/9. * 2. Нормализуйте вертикальное выравнивание прогресса в Chrome, Firefox и Opera. */ аудио, холст, прогресс, видео { отображение: встроенный блок; /* 1 */ вертикальное выравнивание: базовая линия; /* 2 */ } /** * Не позволяйте современным браузерам отображать «аудио» без элементов управления. * Убрать лишнюю высоту в устройствах iOS 5. */ аудио: не ([управление]) { дисплей: нет; высота: 0; } /** * Стиль адреса `[скрытый]` отсутствует в IE 8/9/10. * Скрыть элемент `template` в IE 8/9/11, Safari и Firefox < 22. */ [скрытый], шаблон { дисплей: нет; } /* Ссылки ================================================== ======================== */ /** * Удаление серого цвета фона с активных ссылок в IE 10. */ а { цвет фона: прозрачный; } /** * Улучшение читаемости при фокусировке, а также при наведении курсора мыши во всех браузерах. */ а: активный, а: наведите { контур: 0; } /* Семантика на уровне текста ================================================== ======================== */ /** * Стили адресов отсутствуют в IE 8/9./10/11, Safari и Chrome. */ аббр[название] { нижняя граница: 1px пунктирная; } /** * Стиль адреса установлен на «жирнее» в Firefox 4+, Safari и Chrome. */ б, сильный { вес шрифта: полужирный; } /** * Стиль адресов отсутствует в Safari и Chrome. */ dfn { стиль шрифта: курсив; } /** * Адресная переменная `h2`, размер шрифта и поле внутри `section` и `article` * контексты в Firefox 4+, Safari и Chrome. */ ч2 { размер шрифта: 2em; поле: 0,67em 0; } /** * Стили адресов отсутствуют в IE 8/9.. */ отметка { фон: #ff0; цвет: #000; } /** * Устранение непоследовательного и переменного размера шрифта во всех браузерах. */ маленький { размер шрифта: 80%; } /** * Предотвращение влияния `sub` и `sup` на `line-height` во всех браузерах. */ суб, Как дела { размер шрифта: 75%; высота строки: 0; положение: родственник; вертикальное выравнивание: базовая линия; } Как дела { верх: -0,5см; } суб { низ: -0,25см; } /* Встроенный контент ================================================== ======================== */ /** * Удалить границу внутри элемента `a` в IE 8/9/10. */ картинка { граница: 0; } /** * Правильное переполнение не скрыто в IE 9/10/11. */ svg: не (: корень) { переполнение: скрыто; } /* Группировка контента ================================================== ======================== */ /** * Поле адреса отсутствует в IE 8/9 и Safari. */ фигура { поле: 1em 40px; } /** * Устранить различия между Firefox и другими браузерами. */ час { -moz-box-sizing: поле содержимого; box-sizing: контент-бокс; высота: 0; } /** * Содержит переполнение во всех браузерах. */ предварительно { переполнение: авто; } /** * Исправлено отображение нечетного размера шрифта в единицах `em` во всех браузерах. */ код, кбд, до, проба { семейство шрифтов: моноширинный, моноширинный; размер шрифта: 1em; } /* Формы ================================================== ======================== */ /** * Известное ограничение: по умолчанию Chrome и Safari в OS X допускают очень ограниченное * Стиль `select`, если не установлено свойство `border`. */ /** * 1. Правильный цвет не передается по наследству. * Известная проблема: влияет на цвет отключенных элементов. * 2. Правильные свойства шрифта не наследуются. * 3. Поля адресов устанавливаются по-разному в Firefox 4+, Safari и Chrome. */ кнопка, вход, оптгрупп, Выбрать, текстовая область { цвет: наследовать; /* 1 */ шрифт: наследовать; /* 2 */ маржа: 0; /* 3 */ } /** * Адрес `overflow` установлен на `hidden` в IE 8/9/10/11. */ кнопка { переполнение: видимое; } /** * Устранение непоследовательного наследования `text-transform` для `button` и `select`. * Все остальные элементы управления формой не наследуют значения `text-transform`. * Исправлено наследование стилей кнопок в Firefox, IE 8/9/10/11 и Opera. * Исправлено наследование стиля `select` в Firefox. */ кнопка, Выбрать { преобразование текста: нет; } /** * 1. Избегайте ошибки WebKit в Android 4.0.*, где (2) уничтожает собственный «аудио» * и элементы управления `видео`. * 2. Исправлена невозможность стилизовать кликабельные типы ввода в iOS. * 3. Улучшить удобство использования и согласованность стиля курсора между типами изображений * `ввод` и другие. */ кнопка, HTML-ввод[тип="кнопка"], /* 1 */ ввод[тип="сброс"], ввод[тип="отправить"] { -webkit-внешний вид: кнопка; /* 2 */ курсор: указатель; /* 3 */ } /** * Переустановить курсор по умолчанию для отключенных элементов. */ кнопка [отключено], HTML-ввод [отключено] { курсор: по умолчанию; } /** * Удалены внутренние отступы и границы в Firefox 4+. */ кнопка::-moz-фокус-внутренний, input::-moz-focus-inner { граница: 0; заполнение: 0; } /** * Обратитесь к настройке `line-height` для `input` в Firefox 4+, используя `!important` в * таблица стилей UA. */ вход { высота строки: нормальная; } /** * Не рекомендуется пытаться стилизовать эти элементы. * Реализация Firefox не учитывает размер блока, отступы или ширину. * * 1. В IE 8/9 для размера поля адреса установлено значение `content-box`/10. * 2. Удалите лишнее заполнение в IE 8/9/10. */ ввод[тип="флажок"], ввод[тип="радио"] { box-sizing: граница-коробка; /* 1 */ заполнение: 0; /* 2 */ } /** * Исправлен стиль курсора для кнопок увеличения/уменьшения Chrome. Для некоторых * `font-size` значения `input`, это вызывает стиль курсора * Кнопка уменьшения для изменения с «по умолчанию» на «текст». */ input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { высота: авто; } /** * 1. Адрес «внешний вид» установлен на «поле поиска» в Safari и Chrome. * 2. Адрес `box-sizing` установлен на `border-box` в Safari и Chrome. * (включите `-moz` для будущего). */ ввод[тип="поиск"] { -webkit-внешний вид: текстовое поле; /* 1 */ -moz-box-sizing: поле содержимого; -webkit-box-sizing: поле содержимого; /* 2 */ box-sizing: контент-бокс; } /** * Удалите внутреннее дополнение и кнопку отмены поиска в Safari и Chrome на OS X. * Safari (но не Chrome) обрезает кнопку отмены, когда поисковый ввод * отступы (и внешний вид текстового поля). */ input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-внешний вид: нет; } /** * Определите согласованные границы, поля и отступы. */ набор полей { граница: 1px сплошная #c0c0c0; поле: 0 2px; отступы: 0,35 эм 0,625 эм 0,75 эм; } /** * 1. Правильный `color` не наследуется в IE 8/9/10/11. * 2. Удалите отступы, чтобы люди не были пойманы, если они обнулят наборы полей. */ легенда { граница: 0; /* 1 */ заполнение: 0; /* 2 */ } /** * Удалена вертикальная полоса прокрутки по умолчанию в IE 8/9/10/11. */ текстовая область { переполнение: авто; } /** * Не наследуйте `font-weight` (применяется по правилу выше). * ПРИМЕЧАНИЕ. Значение по умолчанию нельзя безопасно изменить в Chrome и Safari на OS X. */ оптгрупп { вес шрифта: полужирный; } /* Таблицы ================================================== ======================== */ /** * Удалить большинство пробелов между ячейками таблицы. */ стол { граница коллапса: коллапс; интервал между границами: 0; } тд, й { заполнение: 0; }
Вы должны нормализовать свой CSS. В любом дизайне есть плюсы и минусы… | Дэн Бриоли
Вы получаете немного разные результаты с немного другими инструментами.У любого дизайнерского решения есть свои плюсы и минусы. Знать, почему нужно принять решение, так же важно, как знать каким должно быть это решение.
Чуть меньше десяти лет назад Нормализация CSS стала дизайнерским решением, которое необходимо рассмотреть. Я большой поклонник нормализации вашего CSS, потому что я думаю, что это снимает некоторую умственную нагрузку с дизайнера или разработчика внешнего интерфейса. Браузеры применяют стили к элементам до того, как вы напишете любой CSS вообще, и иногда эти стили различаются. Нормализация вашего CSS позволяет вам быть уверенным, зная, что у вас есть один и тот же базовый слой стилей, применяемый в всех браузерах.
Следует отметить, что я говорю о нормализации , а не о сбросе . Это две разные темы, и сегодняшняя статья будет как раз о нормализации. Сбросы всплывут в разговоре — довольно сложно не упомянуть их, говоря о преимуществах нормализации, — но мы не будем углубляться в сбросы.
У нормализации CSS есть несколько очевидных недостатков, которые следует учитывать, но я не думаю, что они являются серьезной проблемой. Во всяком случае, не по большому счету. Давайте сначала уберем их с дороги.
1. Есть небольшие накладные расходы.
Это правда — вы вводите стили между стандартными настройками браузера и вашими собственными таблицами стилей. Это создаст небольшую нагрузку для браузера.
Сколько накладных расходов? Максимум несколько миллисекунд. Если вы вызываете какие-либо API до полного рендеринга страницы, вы уже превзошли задержку, которую вызывают любые переопределения CSS .
Эти незначительные накладные расходы нарушают вашу сделку? Надеюсь нет. Конечно, это фактический недостаток, и, возможно, вы работаете в контексте, в котором это имеет для вас решающее значение. Если это так, не стесняйтесь игнорировать нормализацию вашего CSS. Вероятно, вы находитесь в ситуации, когда вы просто используете стили по умолчанию или в специально созданном контексте, где стили не имеют значения, если вас беспокоит такой уровень накладных расходов, и вы, вероятно, лучше меня знаете, что вам нужно. ограничения есть.
Однако, если вы похожи на большинство разработчиков, работающих в большинстве контекстов, я утверждаю, что это количество накладных расходов совершенно незначительно. Технически это минус, но его легко перевесить.
2. Еще одна зависимость.
Где-то глубоко в стеке технологий есть земля под названием No Dependency Utopia . В этой стране мы вольны писать любой код, какой захотим, будучи уверенными в том, что ничто из того, что мы написали, не сломается, потому что кто-то изменил какой-то код на другом континенте, и мы небрежно обновили наши зависимости. Вопросы безопасности будут только всплывают из-за того, что мы сделали! Представьте , что ! Мы не будем завалены RSS-каналами, загроможденными текстами обновлений, которые нам затем придется просматривать, чтобы убедиться, что мы в курсе того, что мы мало или совсем не контролируем, и на что мы можем только отвечать.
К сожалению, Утопия без зависимости, земля молока и меда, не существует . Это земля, о которой мы все можем мечтать, но она может существовать только во сне.
В нашем нынешнем мире — не совсем Dependency Dystopia, к счастью, больше похоже на Benevolent Dependency Dictatorship — у нас просто есть зависимости, и мы с ними справляемся. Ежедневно множество людей по всему миру прилагают огромные усилия, чтобы справиться с ними.
Есть два способа работы с normalize.css — вы можете импортировать его или просто использовать CSS из его репозитория.
Простое использование CSS из его репозитория, конечно, «удаляет» постоянную зависимость, но теперь вы удалили одну чрезвычайно ценную часть — других людей, которые знают больше, чем вы, о стилях браузера по умолчанию, которые активно поддерживают проект. Знаешь, что ты никогда не сделаешь? Отслеживайте мельчайшие детали изменений пользовательского агента браузера, определенно не до такой степени, что вы будете оставаться актуальным в своем домашнем варианте normalize.css. На мой взгляд, это убирает реальную полезность normalize.css — вы ХОЧУ быть в курсе того, что делает его команда, потому что они будут отслеживать эти изменения в браузере лучше, чем вы когда-либо могли надеяться .
Итак, я думаю, что лучше импортировать его. Я использую проверенный и надежный npm install normalize.css при создании своих проектов, которые нуждаются в нормализации. И в довершение всего, в наши дни обновления для normalize.css выходят очень редко. В то время как браузеры отдалились друг от друга с точки зрения их стилей по умолчанию, они не сильно менялись пару лет , и репозиторий normalize.css на GitHub отражает отсутствие изменений.
И, честное слово... это все . Это список недостатков, которые, я думаю, вам нужно учитывать. На мой взгляд, их не так уж и много.
Так в чем плюсы?
1. Гарантирует одинаковое поведение в разных браузерах.
Это то, ради чего вы сюда пришли — большой плюс нормализации. И это все. Это то, что делает normalize.css. это ВСЕ что делает. Вы получаете одинаковое поведение элементов по умолчанию во всех браузерах.
Это снимает умственную нагрузку с дизайнера или разработчика — им не нужно помнить, что в Browser A , h2 элементы имеют другой размер, чем в Browser B и C .
Вы можете просто написать свои стили, зная, что они будут иметь одинаковую базовую линию во всех браузерах для построения. Со временем вы все равно столкнетесь с некоторыми несоответствиями в браузерах, но это будет из-за того, как браузеры по-разному реализуют или отображают один и тот же CSS, а не из-за того, что у вас были конфликтующие базовые стили во всех браузерах.
2. Сохраняет полезные значения по умолчанию.
Вам действительно не нужно избавляться от всего , не так ли? Зачем выплескивать ребенка вместе с водой?
Сбросы выбрасывают этого ребенка, и ванну, и ванну, и плитку, и полотенца, и… Ну, они очищают все . Затем вам нужно снова построить ванную комнату. И, предположительно, родит еще одного ребенка, полагаю, ?
При нормализации сохраняются полезные значения по умолчанию. Вы всегда можете переопределить их, но в большинстве случаев вам, вероятно, это не нужно. Оставляешь ребенка, оставляешь ванну, оставляешь раковину, оставляешь шторы… Ну, ты обрезаешь шторы на пару дюймов и меняешь их цвет на белый, но это все, что вы делаете !
Сэкономьте себе время и усилия и вместо того, чтобы каждый раз создавать все с нуля, используйте стандартизированный набор значений по умолчанию!
3. Для нормализации не требуется полный перечень элементов.
Вы работаете над огромным проектом, в котором есть документация о том, как и почему каждый стиль был выбран для каждого элемента в каждом контексте? В этом конкретном случае вам, вероятно, следует просто выполнить жесткий сброс CSS и построить все в соответствии со спецификацией.
Однако почти во всех остальных случаях вам не нужен сброс — и уж точно не ПОЛНЫЙ сброс , как некоторые популярные из них могут предложить в своих реализациях.
Вместо этого вы можете использовать гораздо более легкий normalize.css — он не затрагивает почти столько же элементов, и вы получаете стандартизированный результат, который служит отличной основой для всей другой работы, которую вам нужно выполнить. .
4. Это не усложняет (намного) использование инструментов отладки.
Normalize затрагивает только то, что необходимо для приведения вещей к стандартизированному стилю. Когда вы копаетесь в инструментах разработчика вашего браузера, просматривая все примененные и переопределенные стили, нормализация добавляет не так уж много накладных расходов:
html {
line-height: 1.15;
-webkit-text-size-adjust: 100%;
}
тело {
поля: 0;
}
Теперь сравните и со сбросом:
html, body, div, span, applet, object, iframe,
h2, h3, h4, h5, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol , ul, li,
fieldset, форма, метка, легенда, таблица
, подпись, tbody, tfoot, thead, tr, th, td, статья
, в стороне, холст, детали, вставлять, фигура
, figcaption, нижний колонтитул, заголовок , hgroup,
меню, навигация, вывод, ruby, раздел, сводка,
время, метка, аудио, видео {
поле: 0;
заполнение: 0;
граница: 0;
размер шрифта: 100%; шрифт
: наследовать;
вертикальное выравнивание: базовая линия;
}
*вздох* И это будет отображаться для так много элементов. Ограниченное пространство, которое у вас есть в инструментах разработки, уже достаточно ценно — нормализация избавляет вас от значительной нагрузки на глаза и умственных сил при попытке разобрать эти списки элементов при выполнении любого объема отладки.
У любого дизайнерского решения есть свои плюсы и минусы. Приведенный выше список не является исчерпывающим, но это список наиболее важных моментов, которые я учитывал при выборе между полной перезагрузкой и нормализацией. Несмотря на то, что у нормализации вашего CSS есть некоторые незначительные минусы, они на далеко не на перевешиваются плюсами. Возможно, вы обнаружите, что вашему проекту требуется что-то вроде полной перезагрузки — и в этом случае, , используйте этот сброс ! Или используйте комбинацию обоих, или свой собственный домашний метод! CSS — это не место, где жесткие правила побеждают все остальное. Если у вас есть веские причины что-то сделать, тогда вам, вероятно, следует это сделать ! Пока вы можете понять почему решения, как и что обычно следуют непосредственно из него.