Разбор от Алекса Кладова (matklad, автор rust-analyzer) — взгляд бэкендера, которому пришлось стилизовать свой блог. Он разложил CSS на части, которые работают предсказуемо, и части, которые подведут в самый неожиданный момент, и для каждой плохой нашёл обходной путь.
Главные практические выводы:
🔘первая строка любого CSS-файла —
* { box-sizing: border-box; }, иначе padding ломает размеры элементов;🔘вместо обёрток и div-супа — семантические теги
main, article, nav, details: с ними простой classless CSS работает сам;🔘отступы между детьми удобно задавать через owl-селектор
section > *+* { margin-top: 1rem; } — родитель контролирует расстояния, дети ни о чём не знают;🔘явные media-запросы для простых страниц не нужны: flexbox и
max-width на главной колонке дают отзывчивость бесплатно;🔘браузерные дефолты — ловушка: проблема не в правиле, которое вы написали, а в правиле, на которое вы полагаетесь, не написав его;
🔘
font-size задаёт размер виртуальной коробки вокруг глифа, а не сам глиф — выровнять два шрифта помогает font-size-adjust.Для блога автору хватило примерно 200 строк читаемого CSS без фреймворков.
Сохранять тем, кто не фронтендер, но периодически вынужден верстать: страницу проекта, документацию, личный блог.
Полная статья: https://matklad.github.io/2026/06/04/css-unavoidable-bad-parts.html
@prog_stuff