Можно ли отключить сглаживание шрифтов в CSS?
Я хочу, чтобы некоторые маленькие шрифты выглядели без сглаживания. Можно ли отключить сглаживание шрифтов с помощью HTML/CSS?
4 ответа
Да, это возможно, но не для всех браузеров.
font-smooth: auto | never | always | <absolute-size> | length | initial | inherit
-webkit-font-smoothing : none | subpixel-antialiased | antialiased
Для вашего случая:
font-smooth: never;
-webkit-font-smoothing : none;
UPD (для Chrome): принудительное сглаживание шрифтов в Chrome в Windows
Да, хотя я не могу сказать, какие браузеры заметят вас!
Ты можешь написать
<p style="font-smooth:never;">
чтобы получить эффект, который вы хотите.
РЕДАКТИРОВАТЬ
Я был уверен, что использовал это несколько месяцев назад, но я читал в сети Mozilla
Несмотря на то, что он присутствовал в ранних (2002) проектах шрифтов CSS3, шрифтовое сглаживание было удалено из этой спецификации и в настоящее время не соответствует стандартному треку.
Сожалею!
Я тоже это искал. И в конце концов я нашел решение в другом потоке stackoverflow ( как получить «crispEdges» для текста SVG? ), Чтобы отключить сглаживание текста (отключить сглаживание) для SVG, но это решение также работает для обычных элементов HTML.
Хитрость заключается в использовании фильтра SVG, который затем можно добавить к любому элементу HTML, чтобы сделать что-нибудь хрустящим.
- Сначала нам нужно определить фильтр, чтобы мы могли использовать его внутри нашего CSS.
<svg class="offscreen" width="0" height="0" xmlns="http://www.w3.org/2000/svg">
<defs>
<filter id="crispify">
<feComponentTransfer>
<feFuncA type="discrete" tableValues="0 1"/>
</feComponentTransfer>
</filter>
</defs>
</svg>
- Добавьте фильтр к элементу HTML, который содержит только текст. Если у него есть фоновый цвет или что-то в этом роде, это не сработает.
p {
filter: url(#crispify);
}
- дополнительные вещи: вы, вероятно, захотите скрыть элемент SVG, поэтому добавьте его в CSS.
.offscreen {
position: absolute;
left: -100000px;
top: auto;
width: 1px;
height: 1px;
overflow: hidden;
}
- Другое дело: если белый цвет выглядит странно, измените цвет на черный и инвертируйте его с помощью другого фильтра, чтобы ваш код выглядел так:
p {
filter: url(#crispify) invert(1);
}
- Обратите внимание: это лучше всего подходит для шрифтов, которые должны быть четкими, например пиксельных шрифтов. Я также не знаю, будет ли это работать со всеми браузерами, но он работает в Chrome, Edge и Firefox.
Пытаться font-smooth: never;
http://webdesign.about.com/od/styleproperties/p/blspfontsmooth.htm