Настройка тире, тире и длины шрифта

#css #hyphen #roboto

#css #roboto

Вопрос:

Я использую семейство шрифтов Roboto. В общем, он идеально подходит для всех моих потребностей, кроме одной. Разница в длине между ndash и mdash слишком мала. Это очень важный аспект, потому что в рамках наших услуг мы помогаем редакторам, корректорам, писателям и наборщикам.

Чтобы устранить проблему, мы скорректировали шрифт и разместили его на нашем сервере. К сожалению, это оказывает значительное влияние на загрузку страницы и скорость рендеринга (выполняется даже предварительная загрузка шрифта).

Я хотел бы переключиться на CDNJS-версию шрифта Roboto, и мне интересно, есть ли способ CSS или CSS JS исправить проблему. Идея состоит в том, чтобы выбрать все тире на сайте и сократить их все с помощью JS или CSS, чтобы они были точно посередине длины между тире и тире. В исходном шрифте Roboto тире в два раза длиннее тире, но чуть длиннее, чем тире.

Альтернативой является замена всех тире на тире из другого шрифта. Есть еще идеи?

Комментарии:

1. отличный вопрос и отличный вариант использования… но я почти не читал это, потому что это выглядит так сухо для SO…

Ответ №1:

Вы упомянули замену тире и тире другим шрифтом.

Рассматривали ли вы возможность использования свойства CSS font-face unicode-range?

Если у вас есть шрифт с тире нужного размера, вы можете заменить их тире в Roboto.

Я не смог сразу найти шрифт, который имел бы тире, достаточно отличающиеся от стандартных, для демонстрации, но вот код из MDN, который заменяет амперсанд в Helvetica на чуть более яркий из Times New Roman . Этот метод избавляет от необходимости что-либо делать с вашим фактическим текстом.

 @font-face {
  font-family: 'Ampersand';
  src: local('Times New Roman');
  unicode-range: U 26;/* 2013-2014 ndash and mdash */
}

div {
  font-size: 4em;
  font-family: Ampersand, Helvetica, sans-serif;
}  
 <div>Me amp; You = Us</div>  

Комментарии:

1. Спасибо, это именно то, что я искал