Среди фронтенд-разработчиков, привыкших к уютному миру 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), это не значит, что он идентичен.

  1. Метрики глифов: Буква «W» в Liberation Sans может быть на пару пикселей шире, чем в Arial.

  2. Межбуквенное расстояние (кернинг): На длинной строке эти микро-различия накапливаются.

  3. Хинтинг и сглаживание: В 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. Это системная библиотека, которая управляет поиском и заменой шрифтов.

Вот как это работает «под капотом»:

  1. Ваш CSS просит Arial.

  2. Браузер обращается к fontconfig.

  3. fontconfig видит, что Arial нет, и лезет в свои конфиги (например, /etc/fonts/local.conf или ~/.config/fontconfig/fonts.conf).

  4. Там может быть прописано жесткое правило: «Всегда заменять любой запрос на Arial шрифтом Ubuntu Sans».

  5. Браузер получает этот шрифт и отрисовывает его.

Важный момент: В настройках рабочего стола (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 году верстать сайты, которые разваливаются от смены шрифта на аналогичный — это признак того, что ваша верстка слишком хрупкая.

Вот краткий чек-лист, как перестать бояться «пингвинов» и начать делать нормальную кроссплатформенную верстку:

  1. Забудьте про системные шрифты как основу дизайна. Главный «твик», который ищут новички — это установка пакета msttcorefonts в Linux. Да, вы поставите себе Arial, и у вас всё станет красиво. Но у 90% ваших пользователей-линуксоидов его не будет. Хотите предсказуемости? Используйте @font-face и формат WOFF2. Когда шрифт прилетает вместе с сайтом, браузеру плевать на системные дефициты.

  2. Прощай, Pixel Perfect. Эпоха, когда мы вымеряли каждый пиксель, ушла вместе с Internet Explorer 6. Веб — это живая среда. Пользователь может увеличить масштаб, сменить разрешение или принудительно включить другой шрифт. Если кнопка ломается от того, что текст стал на 5 пикселей шире — это плохая кнопка. Используйте гибкие контейнеры и min-width вместо жесткого width.

  3. Грамотные Font Stacks. Не пишите просто Arial, sans-serif. Используйте «стеки безопасности», которые учитывают реалии разных ОС:

    codeCSS

    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Liberation Sans", sans-serif;
  4. Тестируйте в «диких» условиях. Разработка только на Windows — это профессиональная деформация. Заведите виртуалку с любой Linux-системой. Посмотрите, как ваш «валидный XHTML» выглядит там. Вы удивитесь, сколько косяков всплывет: от кривых отступов до инпутов, которые внезапно стали черными из-за системной темы KDE.

Вывод

Толк в CSS не в том, чтобы диктовать браузеру каждый пиксель, а в том, чтобы описать приоритеты. Linux не «игнорирует» ваш код — он честно показывает вам слабые места вашей верстки. Те моменты, где вы слишком сильно положились на окружение пользователя.

Веб-страница — это не картина маслом, которую вы повесили в рамку. Это скорее вода, которую вы налили в кувшин. Ваша задача как разработчика — сделать так, чтобы кувшин (браузер и ОС) не треснул, какой бы формы он ни был.

Комментарии (30)


  1. dom1n1k
    25.02.2026 23:04

    Ваша кнопка, ширина которой была рассчитана ровно под слово «Зарегистрироваться» шрифтом Arial, в Linux просто «взрывается», потому что слово стало шире на 5 пикселей.

    Если вы верстаете так, что погрешности рендеринга в несколько пикселей ломают лейаут - у вас будут проблемы в любой ОС, просто в разных местах.

    Про валидацию XHTML уж не знаю что сказать. Даже 15 лет назад этим уже никто не занимался, а сейчас просто слов таких не знают.


  1. SlavaVSLK
    25.02.2026 23:04

    Полезно. Спасибо.


  1. Beholder
    25.02.2026 23:04

    А не надо подменять понятия. "идеально" != "попиксельная подгонка"


  1. RedEyedAnonymous
    25.02.2026 23:04

    В настройках рабочего стола (KDE, GNOME) у пользователя Linux есть галочка: «Игнорировать шрифты, указанные на веб-страницах».

    KDE Plasma 6.6: нет такой настройки.
    GNOME 49: нет такой настройки (и в Gnome Tweaks тоже).
    Нашлось в настройках Firefox (который, внезапно, кроссплатформенный).
    В хромом где-то в недрах что-то такое вроде бы тоже было.
    Вывод - статья писана левой ногой, и не факт, что человеческой.


    1. ts347
      25.02.2026 23:04

      В хроме такого не было, нет и, видимо, не будет. Можно задать стандартный шрифт, но переопределить им шрифт сайта нельзя.

      В хроме есть расширения, которые меняют шрифт на сайтах. Долго пользовался таким, поскольку ненавижу сглаживание и отключаю его где можно, а современные шрифты на это не рассчитаны. В основном сайты с принудительным Ариалом выглядели сносно, проблем было только две: если монотипный шрифт, там где он действительно нужен, переделывался на пропорциональный; и если на сайте использовались иконки-символы, которые превращались в тофу.


  1. Egres
    25.02.2026 23:04

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

    У большинства как раз будет, потому как mscorefonts ставятся вместе с офисом


    1. RedEyedAnonymous
      25.02.2026 23:04

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


      1. Egres
        25.02.2026 23:04

        1. RedEyedAnonymous
          25.02.2026 23:04

          Скачал пакеты в формате .deb.
          Распаковал.
          Шрифты есть, именно микрософтовских нет.


          1. Egres
            25.02.2026 23:04

            В Linux это делается не так. Пакеты берутся из твоего дистрибутива.
            В статье, в частности, речь об Ubuntu, в котором установка офиса повлечёт за собой установку шрифтов от MS. И это сейчас вполне обычная практика - "десктопные" дистрибутивы этот пакет обычно ставят. Так что про 90% автор загнул.

            P.S. Мог просто пакет со шрифтами скачать, если уж тебе такой способ ближе.


            1. andreymal
              25.02.2026 23:04

              Ubuntu, в котором установка офиса повлечёт за собой установку шрифтов от MS

              Нет

              "десктопные" дистрибутивы этот пакет обычно ставят.

              Тоже нет


              1. 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


                1. andreymal
                  25.02.2026 23:04

                  Из этого никак не следует, что ttf-mscorefonts-installer будет обязательно установлен, потому что вы тоже не туда смотрите


                  1. Egres
                    25.02.2026 23:04

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


                    1. andreymal
                      25.02.2026 23:04

                      Про "обязательно" или "во всех дистрибутивах" никто и не говорил.

                      Этого достаточно, чтобы считать оценку 90% близкой к правде


                      1. Egres
                        25.02.2026 23:04

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


                      1. andreymal
                        25.02.2026 23:04

                        шрифты от MS в нём поставятся автоматически при установке

                        Ещё раз — нет, не поставятся


                      1. Egres
                        25.02.2026 23:04

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


                      1. andreymal
                        25.02.2026 23:04

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


                      1. Egres
                        25.02.2026 23:04

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


                      1. andreymal
                        25.02.2026 23:04

                        Значит он появляется в системе другим способом.

                        Каким, кроме ручной установки?

                        у "90% пользователей" Linux не может быть проблем с отображением самого распространённого шрифта в документах или интернете

                        Может


                      1. Egres
                        25.02.2026 23:04

                        Нет


                      1. andreymal
                        25.02.2026 23:04

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