Я хочу, чтобы некоторые мелкие шрифты выглядели без сглаживания. Можно ли отключить сглаживание шрифтов с помощью HTML/CSS?
Можно ли отключить сглаживание шрифтов в 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, font-smooth был удален из этой спецификации и в настоящее время не входит в стандартный набор.
Извиняюсь!
попробуй font-smooth: never;
http://webdesign.about.com/od/styleproperties/p/blspfontsmooth.htm
Я тоже искал это. И в конце концов я нашел решение в другом потоке 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.