Есть ли способ сделать расстояние между буквами css: 0,5 px?

Я столкнулся с проблемой, мне нужно, чтобы пользователям было легко читать текст, поэтому я использовал межбуквенный интервал 1 пиксель, но это выглядит некрасиво, поэтому я подумал, что буду использовать полпикселя, поэтому 0,5 пикселя, но это не работает, я пытался использовать атрибуты em, но не выполнил задачу.

Итак, есть ли способ сделать интервал между буквами в половину пикселя (если возможно, кросс-браузерное решение)


person Ilja    schedule 18.10.2011    source источник
comment
Вероятно, вы сталкиваетесь с проблемами выравнивания пикселей при использовании подсказки шрифтов; вы, вероятно, смещаетесь на полпикселя, но затем растеризатор шрифтов повторно выравнивает текст по границам пикселей. Эффекты 0,5px могут варьироваться от ОС к ОС и от браузера к браузеру.   -  person Phrogz    schedule 18.10.2011
comment
Поскольку это первое место в результатах Google, чтобы помочь новичкам, по состоянию на конец 2013 года дробный интервал между буквами поддерживается всеми основными браузерами.   -  person Joshua Dance    schedule 29.03.2017


Ответы (6)


Об этой ошибке сообщалось еще в 2008 году, и она подтверждена. Так что, если кому-то захочется взломать webkit, многие дизайнеры будут счастливы.

https://bugs.webkit.org/show_bug.cgi?id=20606

person idFlood    schedule 15.12.2011
comment
Похоже, патч наконец-то появился в webkit! И Chrome/blink был исправлен некоторое время назад. Так что очень скоро мы сможем безопасно использовать дробный межбуквенный интервал. - person idFlood; 09.01.2014
comment
Я только что протестировал последнюю версию сафари (8.0), и теперь она работает :) - person idFlood; 24.10.2014

Субпиксельное расстояние между буквами отлично работает в FF, но не в WebKit (по крайней мере, в Windows). См. этот тестовый пример:
http://jsfiddle.net/fZYqL/2/.

Этот тест также показывает, что проблема заключается не в буквальном значении субпикселя. Использование дробных значений em, которые приводят к межбуквенному интервалу менее 1 пикселя, также не поддерживается в Webkit, но так же хорошо работает в Firefox.

Firefox против Webkit

person Phrogz    schedule 18.10.2011

Эта ошибка была исправлена ​​в Chromium и добавлена ​​в Chrome 30. Таким образом, дробные значения теперь поддерживаются Firefox, Chrome и Opera.

person Maximilian Hoffmann    schedule 06.10.2013
comment
Говорят, что это исправлено, но я все еще вижу это в новейшей (на данный момент) версии 31.0.1650.48 m. - person Michał Rybak; 14.11.2013
comment
Протестирован приведенный выше пример (jsfiddle.net/fZYqL/2) в Chrome версии 31.0.1650.48, который работал. хорошо для меня. - person Maximilian Hoffmann; 14.11.2013

@Zach Re: дробные пиксели. Хотя они не существуют физически, они моделируются в цифровом виде с помощью прозрачности и изменения цвета. Хорошим примером являются значки и шрифт с засечками. При внимательном рассмотрении того, что кажется очень тонкой линией, быстро видно, что она смоделирована путем визуализации линии более светлым цветом, который обманывает глаз. Таким образом, даже когда их не существует, графическое программное обеспечение уже давно правильно обрабатывает дробные пиксели. Жаль, что браузеры webkit до сих пор этого не делают.

Re: Дробный интервал между буквами. Его можно указать, и он отлично работает в браузерах, отличных от webkit (престижность IE на этот раз). В браузерах webkit расстояние между буквами округляется до ближайшего целого числа (я полагаю, что оно округляется в меньшую сторону). Это округление происходит не только тогда, когда межбуквенный интервал указывается непосредственно в виде дробного пикселя, но и когда он указывается в виде процента или значения em, а окончательный расчет в пикселях приводит к дробному пикселю. Очень расстраивает.

person cockypup    schedule 11.04.2013

Размеры субпикселей допустимы, но они могут иметь непредсказуемые результаты в разных браузерах. Такие вещи, как текст, также пытаются выровняться по целым пикселям (как говорит Фрогз), поэтому есть вероятность, что возникающие в результате ошибки округления могут привести к тому, что все будет выглядеть неравномерно.

person Toomai    schedule 18.10.2011
comment
В соответствии с спецификациями CSS2 количество интервала в дополнение к пробелу между символами по умолчанию; иметь дополнительные 0,5 пикселя — разумное и читабельное желание - person Phrogz; 19.10.2011

Дробные значения межбуквенного интервала поддерживаются Webkit, Firefox, Chrome и Opera с конца 2013 года.

Подтверждено трюками CSS — https://css-tricks.com/almanac/properties/l/letter-spacing/

И я только что протестировал его.

person Joshua Dance    schedule 28.03.2017