
Среди фронтенд-разработчиков, привыкших к уютному миру Windows и macOS, бытует одно опасное заблуждение. Оно звучит так: «Если мой код валиден (XHTML 1.1 Strict, привет из 2000-х!), а CSS написан по спецификации, то сайт будет выглядеть одинаково везде».
Но стоит такому разработчику поставить условную Ubuntu или openSUSE, как мир рушится. Шрифты становятся корявыми, кнопки «раздуваются», а блоки, которые филигранно подгонялись пиксель в пиксель, начинают наезжать друг на друга.
Реакция — Почему Linux игнорирует мой CSS и подставляет свои шрифты?
Сразуу расставим точки над i: Linux ничего не игнорирует. Ваш браузер — будь то Chromium или Firefox — честно читает каждую строчку стилей. Проблема в том, что мы часто воспринимаем CSS как жесткий приказ, хотя на самом деле это лишь набор пожеланий. И когда система не может их выполнить, она включает режим «самодеятельности», который и рушит ваш дизайн.
Проблема «исчезающих» шрифтов
Типичная ошибка новичка (и любьтелей «чистой» верстки):
codeCSS
font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
Разработчик уверен, что Arial есть у всех. Но в мире Open Source шрифт Arial — это проприетарная собственность Monotype. Microsoft заплатила за лицензию, Apple заплатила, а сообщество Linux — нет.
Когда браузер в Linux видит этот список, он честно спрашивает систему: «Дай мне Arial». Система отвечает: «Нет такого». Браузер спрашивает про Helvetica. Ответ тот же. В итоге срабатывает последний фолбек — sans-serif.
И вот тут начинается магия подстановок. В зависимости от дистрибутива, система подсунет вместо Arial что угодно: Arimo, Liberation Sans или какой-нибудь DejaVu Sans.
Ну и что? Они же похожи
А вот и нет. И в этом кроется главный подвох. Даже если шрифт называется «метрически совместимым» (как допустимLiberation Sans по отношению к Arial), это не значит, что он идентичен.
Метрики глифов: Буква «W» в Liberation Sans может быть на пару пикселей шире, чем в Arial.
Межбуквенное расстояние (кернинг): На длинной строке эти микро-различия накапливаются.
Хинтинг и сглаживание: В Linux за отрисовку отвечает FreeType. У него свои алгоритмы сглаживания, которые отличаются от Windows ClearType. Один и тот же шрифт в Linux может казаться более «жирным» или «размытым».
Итог: Ваша кнопка, ширина которой была рассчитана ровно под слово «Зарегистрироваться» шрифтом Arial, в Linux просто «взрывается», потому что слово стало шире на 5 пикселей. CSS выполнен? Да. Сайт сломан? Тоже да
Иллюзия контроля и ловушка XHTML 1.1 Strict

Многие разработчики старой закалки (или те, кто начитался учебников десятилетней давности) до сих пор верят в магическую силу XHTML 1.1 Strict. Логика простая: «Если мой код проходит валидацию W3C, браузер обязан отобразить его идеально».
Спешу расстроить: валидатор проверяет только синтаксическую чистоту вашего кода. Ему плевать, как этот код превращается в пиксели на мониторе. Вы можете написать идеально валидный XHTML, но если вы жестко задали размеры контейнеров под конкретный шрифт, которого нет в системе — ваша верстка рассыплется.
Проблема в том, что веб — это не PDF. В PDF шрифты встроены в документ. В вебе вы лишь даете браузеру «рецепт» страницы, а ингредиенты (шрифты, системные цвета, настройки сглаживания) он берет на кухне пользователя. И если на кухне openSUSE нет «масла» (Arial), повар заменит его «маргарином» (Liberation Sans).
Кто на самом деле командует парадом?
Вы думаете, что CSS — это высшая инстанция? На самом деле в Linux над браузером стоит еще один «босс» — fontconfig. Это системная библиотека, которая управляет поиском и заменой шрифтов.
Вот как это работает «под капотом»:
Ваш CSS просит Arial.
Браузер обращается к fontconfig.
fontconfig видит, что Arial нет, и лезет в свои конфиги (например, /etc/fonts/local.conf или ~/.config/fontconfig/fonts.conf).
Там может быть прописано жесткое правило: «Всегда заменять любой запрос на Arial шрифтом Ubuntu Sans».
Браузер получает этот шрифт и отрисовывает его.
Важный момент: В настройках рабочего стола (KDE, GNOME) у пользователя Linux есть галочка: «Игнорировать шрифты, указанные на веб-страницах». Если она включена, ваш CSS вообще не имеет значения для типографики. Система просто принудительно рендерит всё системным шрифтом. Для пользователя это вопрос комфорта и читаемости, для разработчика — кошмар наяву.
Рендеринг: Битва движков

Даже если вы умудритесь доставить нужный шрифт пользователю (например, через @font-face), вы все равно увидите разницу. Почему? Потому что Windows использует DirectWrite, macOS — Core Text, а Linux — FreeType.
Windows старается «примагнитить» буквы к пиксельной сетке (хинтинг), чтобы текст был максимально четким. Иногда это искажает форму букв.
macOS плевать на сетку, она сохраняет идеальную форму букв, из-за чего на не-Retina мониторах текст кажется «мыльным».
Linux (FreeType) — это гибкий конструктор. В разных дистрибутивах настройки хинтинга и сглаживания (antialiasing) могут отличаться радикально.
В итоге одна и та же кнопка в 100 пикселей в Windows будет вмещать текст идеально, а в Linux — из-за другого алгоритма сглаживания — текст станет на 2 пикселя шире и «вывалится» из границ.
Как с этим жить?
Если вы дочитали до этого момента, то уже поняли: проблема не в Linux, а в попытке навязать вебу статичность печатного листа. В 2026 году верстать сайты, которые разваливаются от смены шрифта на аналогичный — это признак того, что ваша верстка слишком хрупкая.
Вот краткий чек-лист, как перестать бояться «пингвинов» и начать делать нормальную кроссплатформенную верстку:
Забудьте про системные шрифты как основу дизайна. Главный «твик», который ищут новички — это установка пакета msttcorefonts в Linux. Да, вы поставите себе Arial, и у вас всё станет красиво. Но у 90% ваших пользователей-линуксоидов его не будет. Хотите предсказуемости? Используйте @font-face и формат WOFF2. Когда шрифт прилетает вместе с сайтом, браузеру плевать на системные дефициты.
Прощай, Pixel Perfect. Эпоха, когда мы вымеряли каждый пиксель, ушла вместе с Internet Explorer 6. Веб — это живая среда. Пользователь может увеличить масштаб, сменить разрешение или принудительно включить другой шрифт. Если кнопка ломается от того, что текст стал на 5 пикселей шире — это плохая кнопка. Используйте гибкие контейнеры и min-width вместо жесткого width.
-
Грамотные Font Stacks. Не пишите просто Arial, sans-serif. Используйте «стеки безопасности», которые учитывают реалии разных ОС:
codeCSS
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Liberation Sans", sans-serif; Тестируйте в «диких» условиях. Разработка только на Windows — это профессиональная деформация. Заведите виртуалку с любой Linux-системой. Посмотрите, как ваш «валидный XHTML» выглядит там. Вы удивитесь, сколько косяков всплывет: от кривых отступов до инпутов, которые внезапно стали черными из-за системной темы KDE.
Вывод
Толк в CSS не в том, чтобы диктовать браузеру каждый пиксель, а в том, чтобы описать приоритеты. Linux не «игнорирует» ваш код — он честно показывает вам слабые места вашей верстки. Те моменты, где вы слишком сильно положились на окружение пользователя.
Веб-страница — это не картина маслом, которую вы повесили в рамку. Это скорее вода, которую вы налили в кувшин. Ваша задача как разработчика — сделать так, чтобы кувшин (браузер и ОС) не треснул, какой бы формы он ни был.
Комментарии (30)

RedEyedAnonymous
25.02.2026 23:04В настройках рабочего стола (KDE, GNOME) у пользователя Linux есть галочка: «Игнорировать шрифты, указанные на веб-страницах».
KDE Plasma 6.6: нет такой настройки.
GNOME 49: нет такой настройки (и в Gnome Tweaks тоже).
Нашлось в настройках Firefox (который, внезапно, кроссплатформенный).
В хромом где-то в недрах что-то такое вроде бы тоже было.
Вывод - статья писана левой ногой, и не факт, что человеческой.
ts347
25.02.2026 23:04В хроме такого не было, нет и, видимо, не будет. Можно задать стандартный шрифт, но переопределить им шрифт сайта нельзя.
В хроме есть расширения, которые меняют шрифт на сайтах. Долго пользовался таким, поскольку ненавижу сглаживание и отключаю его где можно, а современные шрифты на это не рассчитаны. В основном сайты с принудительным Ариалом выглядели сносно, проблем было только две: если монотипный шрифт, там где он действительно нужен, переделывался на пропорциональный; и если на сайте использовались иконки-символы, которые превращались в тофу.

Egres
25.02.2026 23:04Главный «твик», который ищут новички — это установка пакета msttcorefonts в Linux. Да, вы поставите себе Arial, и у вас всё станет красиво. Но у 90% ваших пользователей-линуксоидов его не будет.
У большинства как раз будет, потому как mscorefonts ставятся вместе с офисом

RedEyedAnonymous
25.02.2026 23:04С каким офисом? Напоминаю, речь о Linux.

Egres
25.02.2026 23:04
RedEyedAnonymous
25.02.2026 23:04Скачал пакеты в формате .deb.
Распаковал.
Шрифты есть, именно микрософтовских нет.
Egres
25.02.2026 23:04В Linux это делается не так. Пакеты берутся из твоего дистрибутива.
В статье, в частности, речь об Ubuntu, в котором установка офиса повлечёт за собой установку шрифтов от MS. И это сейчас вполне обычная практика - "десктопные" дистрибутивы этот пакет обычно ставят. Так что про 90% автор загнул.
P.S. Мог просто пакет со шрифтами скачать, если уж тебе такой способ ближе.
andreymal
25.02.2026 23:04Ubuntu, в котором установка офиса повлечёт за собой установку шрифтов от MS
Нет
"десктопные" дистрибутивы этот пакет обычно ставят.
Тоже нет

Egres
25.02.2026 23:04Нет
$ apt-cache rdepends --installed ttf-mscorefonts-installer
ttf-mscorefonts-installer
Reverse Depends:
libreoffice-common
libreoffice-common
ubuntu-restricted-extras$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.4 LTS
Release: 24.04
Codename: noble
andreymal
25.02.2026 23:04Из этого никак не следует, что ttf-mscorefonts-installer будет обязательно установлен, потому что вы тоже не туда смотрите

Egres
25.02.2026 23:04Про "обязательно" или "во всех дистрибутивах" никто и не говорил. Я лишь сказал, что автор погорячился с оценкой 90% :)

andreymal
25.02.2026 23:04Про "обязательно" или "во всех дистрибутивах" никто и не говорил.
Этого достаточно, чтобы считать оценку 90% близкой к правде

Egres
25.02.2026 23:04Нет, естественно. Потому что если Linux ставился для "офисной" работы или там домой, то шрифты от MS в нём поставятся автоматически при установке "с оценкой 90%". И это уже много лет так. Потому что разработчики тоже не дураки и в курсе существования этой проблемы уже не одно десятилетие, наверно :)

andreymal
25.02.2026 23:04шрифты от MS в нём поставятся автоматически при установке
Ещё раз — нет, не поставятся

Egres
25.02.2026 23:04Ну нет так нет. Спорить с человеком, тупо повторяющим одно и то же смысла никакого.

andreymal
25.02.2026 23:04А вы, видимо, боитесь открывать информацию о пакете libreoffice-common, потому что догадываетесь, что увидите, что никакой зависимости от ttf-mscorefonts-installer там нет

Egres
25.02.2026 23:04Значит он появляется в системе другим способом. Не нужно быть семи пядей во лбу, чтобы догадаться, что у "90% пользователей" Linux не может быть проблем с отображением самого распространённого шрифта в документах или интернете. И сайты у них не "разъезжаются" совсем не потому, что все дизайнеры держат в голове вышеописанные тонкости.

andreymal
25.02.2026 23:04Значит он появляется в системе другим способом.
Каким, кроме ручной установки?
у "90% пользователей" Linux не может быть проблем с отображением самого распространённого шрифта в документах или интернете
Может

andreymal
25.02.2026 23:04Ну нет так нет. Спорить с человеком, тупо повторяющим одно и то же смысла никакого.
dom1n1k
Если вы верстаете так, что погрешности рендеринга в несколько пикселей ломают лейаут - у вас будут проблемы в любой ОС, просто в разных местах.
Про валидацию XHTML уж не знаю что сказать. Даже 15 лет назад этим уже никто не занимался, а сейчас просто слов таких не знают.