Сброс стилей
Оригинальное название: CSS reset
Коротко
Набор CSS-правил в начале таблицы стилей, который убирает или выравнивает оформление, заданное браузером по умолчанию, чтобы вёрстка начиналась с предсказуемой базы.
Что такое «Сброс стилей»
Каждый браузер приносит собственную таблицу стилей: у body есть поле в 8 пикселей, у заголовков и абзацев — внешние отступы, у списков — маркеры и внутренний отступ слева, у кнопок — свой шрифт. Значения в разных браузерах исторически немного отличались, и одна и та же вёрстка выглядела по-разному. Сброс выключает эти умолчания, и дальше разработчик задаёт всё явно.
Подходов три. Жёсткий сброс, самый известный вариант которого предложил Эрик Мейер, обнуляет почти всё, вплоть до размеров заголовков. Нормализация, как в normalize.css, наоборот, сохраняет полезные умолчания и правит только расхождения. Современные «минимальные» сбросы — середина: десяток правил, которые снимают самые неудобные настройки.
Пример минимального сброса
*, *::before, *::after { box-sizing: border-box; }
body, h1, h2, h3, p, figure, ul, ol { margin: 0; }
img, picture, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
Первое правило меняет блочную модель: ширина начинает включать отступы и рамку. Последнее заставляет поля форм наследовать шрифт сайта, а не системный.
Где сброс вредит
- Убранный outline. Правило
:focus { outline: none; }лишает пользователей клавиатуры видимого фокуса. Если обводка мешает дизайну, её заменяют своей, а не удаляют. - Списки без маркеров. После
list-style: noneSafari с VoiceOver может перестать объявлять список списком. Поэтому маркеры снимают только у списков с классом, например у меню. - Конфликт с готовым кодом. Жёсткий сброс в теме ломает вид виджетов и контента из визуального редактора, которые рассчитывали на обычные отступы.
Как подключать
Сброс ставят первым, чтобы следующие правила его перекрывали. В новых проектах удобно положить его в отдельный слой каскада: @layer reset, base, components;. Тогда правила сброса проиграют любым стилям из последующих слоёв, даже если у их селекторов выше специфичность.

