Есть ли "сглаживание шрифтов" в Google Chrome?

Я использую google webfonts, и они прекрасны при супер больших размерах шрифта, но в 18px они выглядят ужасно. Я читал здесь и там, что есть решения для сглаживания шрифтов, но я не нашел там, где это объясняет это ясно, и несколько фрагментов, которые я нашел, вообще не работают.

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

может ли кто-нибудь указать мне в правильном направлении? Возможно, вы знаете ресурс, который объясняет это ясно? Спасибо!

ПРИМЕР СКРИНШОТА #1

этот скриншот показывает домашнюю страницу https://www.dartlang.org/, язык программирования, который сделан Google (поэтому мы можем предположить, что этот сайт также построен Google) и использует Google Webfonts.

скриншот показывает Google Chrome слева, Firefox / Internet Explorer на право.:

google chrome on the left, firefox/internet explorer on the right

ПРИМЕР СКРИНШОТА #2

этот снимок экрана показывает страницу информации о продукте на Adobe.com, используя webfonts, предоставляемые Typekit. Adobe & Typekit являются профессионалами, когда дело доходит до шрифтов.

скриншот показывает Google Chrome справа, Firefox / Internet Explorer слева:

google chrome on the left, firefox/internet explorer on the right

5 ответов


статус вопроса, июнь 2014: исправлено с Chrome 37

наконец, команда Chrome выпустит исправление для этой проблемы с Chrome 37, который будет выпущен для общественности в июле 2014 года. См. пример сравнения текущего стабильного Chrome 35 и последнего Chrome 37 (предварительный просмотр ранней разработки) здесь:

enter image description here

статус выпуска, декабрь 2013

1.) Есть нет правильное решение при загрузке шрифты via @import, <link href= или Google webfont.js. Проблема в том, что Chrome просто запрашивает .woff файлы из API Google, которые отображаются ужасно. Удивительно, но все остальные типы файлов шрифтов отображаются красиво. Однако есть некоторые CSS-трюки, которые немного" сгладят " отображаемый шрифт, вы найдете обходной путь(ы) глубже в этом ответе.

2.) Существует реальное решение для этого при самостоятельном размещении шрифтов, впервые опубликованных Хайме Фернандес!--13--> в другом ответе на этой странице Stackoverflow, который устраняет эту проблему, загружая веб-шрифты в специальном порядке. Мне было бы плохо просто скопировать его отличный ответ, поэтому, пожалуйста, посмотрите там. Существует также (недоказанное) решение, которое рекомендует использовать только шрифты TTF/OTF, поскольку они теперь поддерживаются почти всеми браузерами.

3.) Команда разработчиков Google Chrome работает над этим вопросом. Поскольку в движке рендеринга произошло несколько огромных изменений, очевидно, что-то происходит.

я написал большой пост в блоге по этому вопросу, не стесняйтесь смотреть: как исправить уродливый рендеринг шрифтов в Google Chrome

повторяемыми примерами

смотрите, как пример из начального вопроса выглядит сегодня, в Chrome 29:

ПОЛОЖИТЕЛЬНЫЙ ПРИМЕР:

слева: Firefox 23, справа: Chrome 29

enter image description here

ПОЛОЖИТЕЛЬНЫЙ ПРИМЕР:

сверху: Firefox 23, снизу: Chrome 29

enter image description here

отрицательный пример: Chrome 30

enter image description here

отрицательный пример: Chrome 29

enter image description here

решение

исправление вышеуказанного скриншота с помощью-webkit-text-stroke:

enter image description here

первая строка по умолчанию, второй:

-webkit-text-stroke: 0.3px;

Третья строка:

-webkit-text-stroke: 0.6px;

таким образом, способ исправить эти шрифты просто дает им

-webkit-text-stroke: 0.Xpx;

или синтаксис RGBa (от nezroy, найденный в комментариях! Спасибо!)

-webkit-text-stroke: 1px rgba(0,0,0,0.1)

существует также устаревшая возможность: Дайте тексту простую (поддельную) тень:

text-shadow: #fff 0px 1px 1px;

решение RGBa (найдено в блоге Джаспера Эспехо):

text-shadow: 0 0 1px rgba(51,51,51,0.2);

Я сделал блог сообщение об этом:

если вы хотите быть обновлены по этому вопросу, посмотрите на соответствующее сообщение в блоге:как исправить уродливый рендеринг шрифтов в Google Chrome. Я опубликую новости, если будут новости об этом.

мой оригинальный ответ:

это большая ошибка в Google Chrome, и команда Google Chrome знает об этом, см. официальный отчет об ошибке здесь. В настоящее время, в мае 2013 года, даже через 11 месяцев после сообщения об ошибке, это не разрешенный. Странно, что единственный браузер, который портит Google Webfonts, - это собственный браузер Google Chrome (!). Но есть простой обходной путь, который устранит проблему, см. ниже для решения.

ЗАЯВЛЕНИЕ ОТ КОМАНДЫ РАЗРАБОТЧИКОВ GOOGLE CHROME, МАЙ 2013

официальное заявление в отчете об ошибке комментарии:

активно работает рендеринг шрифтов Windows. ... Мы надеемся, что что-то в milestone или два, с которыми разработчики могут начать играть. Как быстро он становится стабильным, это, как всегда, все о том, как быстро мы можем искоренить и сжечь любые регрессии.


У меня была такая же проблема, и я нашел решение в этот пост Сэма Годдарда,

решение, если к определил вызов шрифта дважды. Сначала, как рекомендуется, использовать для всех браузеров, а после определенного вызова только для Chrome со специальным медиа-запросом:

@font-face {
  font-family: 'chunk-webfont';
  src: url('../../includes/fonts/chunk-webfont.eot');
  src: url('../../includes/fonts/chunk-webfont.eot?#iefix') format('eot'),
  url('../../includes/fonts/chunk-webfont.woff') format('woff'),
  url('../../includes/fonts/chunk-webfont.ttf') format('truetype'),
  url('../../includes/fonts/chunk-webfont.svg') format('svg');
  font-weight: normal;
  font-style: normal;
}

@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'chunk-webfont';
    src: url('../../includes/fonts/chunk-webfont.svg') format('svg');
  }
}

enter image description here

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

вы можете найти испанская версия этой статьи на моей странице


хром не отображает шрифты, такие как Firefox или любой другой браузер. Это вообще проблема в Chrome работает только на Windows. Если вы хотите сделать шрифты ровными, используйте -webkit-font-smoothing свойство на yer h4 теги, как это.

h4 {
    -webkit-font-smoothing: antialiased;
}

вы также можете использовать subpixel-antialiased, это даст вам другой тип сглаживания (делая текст немного размытым/затененным). Тем не менее, вам понадобится ночная версия, чтобы увидеть эффекты. Подробнее о сглаживании шрифтов здесь.


Ok вы можете использовать это просто

-webkit-text-stroke-width: .7px;
-webkit-text-stroke-color: #34343b;
-webkit-font-smoothing:antialiased;

убедитесь, что ваш цвет текста и верхняя ширина текстового штриха должны быть одинаковыми, и все.


скажу перед всем этим это не всегда работает, я проверил это с sans-serif шрифт и внешние шрифты как open sans

иногда, когда вы используете огромные шрифты, попробуйте приблизиться к font-size:49px и верхней

font-size:48px

это текст заголовка размером 48px (font-size:48px; в элементе, содержащем текст).

но, если вы до 48px до font-size:49px; (и 50px, 60px, 80px, etc...), нечто интересное случается

font-size:49px

текст автоматически становится гладким и кажется действительно хорошим

для другой стороны...

если вы ищете мелкий шрифт, вы можете попробовать это, но не очень эффективно.

к родительскому тексту просто примените следующее свойство css:-webkit-backface-visibility: hidden;

вы можете преобразовать что-то вроде этого:

-webkit-backface-visibility: visible;

для это:

-webkit-backface-visibility: hidden;

(шрифт Kreon)

считайте, что, когда вы не ставите это свойство,-webkit-backface-visibility: visible; - наследовать

но будьте осторожны, эта практика не всегда даст хорошие результаты, если вы внимательно посмотрите, Chrome просто сделает текст немного размытым.

еще один интересный факт:

-webkit-backface-visibility: hidden; будет работать тоже, когда вы преобразуете текст в Chrome (с -webkit-transform собственность, это включает в себя вращения, перекосы и т. д.)

Without

без -webkit-backface-visibility: hidden;

With

С -webkit-backface-visibility: hidden;

Ну, я не знаю, почему эта практика работает, но для меня она работает. Извините за мой странный английский.