Cброс делается глобально не в одном файле, а точечно в тех блоках, где это необходимо (это позволяет переиспользовать блоки в разных проектах без неявной зависимости от упомянутых reset.css / normalize.css). Т. е. осознанно дублируя, например,
box-sizing: border-box
в блоках (элементах, модификаторах), где нам нужно повлиять на размер при использовании padding'ов, мы делаем Абсолютно Независимые Блоки (АНБ) без неявных зависимостей.
— Даже html и body не сбросить?
— Наоборот. Можно же сделать так:
<!-- index.html -->
<!DOCTYPE html>
<html>
<body class="page">
<!-- page content -->
</body>
</html>
/* page.css */
html {
padding: 0;
margin: 0;
}
.page {
padding: 0;
margin: 0;
}
— А как же ul-ки и т.д?
— Аналогично:
<ul class="list">
<li class="list__item">foo
<li class="list__item">bar
</ul>
/* list.css */
.list {
margin: 0;
padding: 0;
list-style-type: disc;
list-style-position: inside;
}