Кратко
Скопированоletter
задаёт межбуквенное расстояние — интервал между символами в тексте.
Пример
СкопированоСтандартное расстояние между символами:
p { letter-spacing: normal;}
p { letter-spacing: normal; }
Расстояние, заданное вручную с помощью значений длины:
p { letter-spacing: 0.3em; letter-spacing: 3px; letter-spacing: 0.3px;}
p { letter-spacing: 0.3em; letter-spacing: 3px; letter-spacing: 0.3px; }
Значение, относительно другого элемента:
p { letter-spacing: inherit; letter-spacing: initial; letter-spacing: unset;}
p { letter-spacing: inherit; letter-spacing: initial; letter-spacing: unset; }
Как понять
СкопированоС помощью letter
можно сжать или растянуть текст на веб-странице. При этом расстояние между буквами и другими символами уменьшается или увеличивается, а сами символы остаются прежнего размера.
Как пишется
СкопированоЗадать межбуквенное расстояние можно в пикселях px
, дюймах in
, пунктах pt
или других единицах, которые используются в CSS.
Значение может быть отрицательным, например, -1px
. В этом случае убедитесь, что текст всё ещё можно прочесть, потому что, скорее всего, буквы «склеятся».
Вот какие значения можно задать:
normal
— стандартное межбуквенное расстояние, которое задано для шрифта (значение по умолчанию).- конкретное значение — положительное или отрицательное значение в любых единицах величины. Значение может быть дробным. Положительное значение добавляется к стандартному расстоянию между буквами, а отрицательное — вычитается из него.
Ещё примеры
СкопированоПопробуем задать расстояние между символами разными способами:
<p class="normal">Стандартное расстояние normal.</p><p class="em-wide">Чуть шире, относительно стандартного. Задаём 0.4em.</p><p class="em-wider">Ещё шире, относительно стандартного: 1em.</p><p class="em-tight"> Немного сжимаем с помощью отрицательного значения -0.05em.</p><p class="px-wide">Добавляем по 6px между символами.</p>
<p class="normal">Стандартное расстояние normal.</p> <p class="em-wide">Чуть шире, относительно стандартного. Задаём 0.4em.</p> <p class="em-wider">Ещё шире, относительно стандартного: 1em.</p> <p class="em-tight"> Немного сжимаем с помощью отрицательного значения -0.05em. </p> <p class="px-wide">Добавляем по 6px между символами.</p>
.normal { letter-spacing: normal;}.em-wide { letter-spacing: 0.4em;}.em-wider { letter-spacing: 1em;}.em-tight { letter-spacing: -0.05em;}.px-wide { letter-spacing: 6px;}
.normal { letter-spacing: normal; } .em-wide { letter-spacing: 0.4em; } .em-wider { letter-spacing: 1em; } .em-tight { letter-spacing: -0.05em; } .px-wide { letter-spacing: 6px; }
Подсказки
Скопировано💡 Слишком большое или маленькое межбуквенное расстояние может растянуть или сжать текст так, что его будет сложно прочесть.
💡 Помните, что у каждого шрифта своё стандартное расстояние между символами. Поэтому для одного шрифта разряженный интервал может смотреться хорошо, а для другого ужасно.
На практике
Скопированосоветует Скопировано
🛠 При вёрстке макета, нарисованного в Фотошоп, у вас могут возникнуть проблемы с letter
. Причина в том, что в Фотошопе используется другая логика для расчёта межбуквенного расстояния.
Если попробовать задать элементу letter
, то получишь следующий результат.
Это не совсем то, что нужно. Но как тогда правильно перенести межбуквенное расстояние из Фотошопа в вёрстку?
Нужно использовать следующую хитрую функцию:
x * z / 1000 = y
z
— размер шрифта (font
) в пикселях.- size x
— значение межбуквенного расстояния из Фотошопа.y
— результат вычисления, нужное значение для свойстваletter
в пикселях.- spacing
Подставим значения с картинки выше:
20 * 18 / 1000 = 0.36px
Можно также вычислить межбуквенное расстояние в em
. Для этого используй формулу:
x / 1000 = y
Где x
— значение межбуквенного расстояния из Фотошопа.