Неправильное выравнивание текста в тексте

Я заметил странное поведение при использовании разметки букв и выравнивания текста: центр вместе.
Увеличьте пространство, чтобы текст был ближе к левому краю элемента.

HTML

<div>
  <p>- Foo Bar Zan -</p>
</div>

CSS

div {
  width: 400px;
  height:400px;
  background-color: #3b0d3b;
  text-align:center;
  margin:auto;
}

p {
  color:#fff;
  margin-top: 40px;
  text-align:center;
  padding-top:30px;
  font-size: 1.2em;
  letter-spacing:.9em;  <--- Here is the problem
}

Я создал код, чтобы показать, что я имею в виду. Я обнаружил то же поведение в последних Firefox и Chrome. Есть ли способ исправить эту проблему?

Ответ 1

Похоже, вам нужно сделать отступ текста на столько же, сколько и межбуквенный интервал. Первая буква не имеет пробела, примененного к левой стороне

div {
  width: 400px;
  height: 400px;
  background-color: #3b0d3b;
  text-align: center;
  margin: auto;
}

p {
  color: #fff;
  background: black;
  text-align: center;
  font-size: 1.2em;
  padding: 0;
  margin: 0;
}

.spacing {
  letter-spacing: .4em;
}

.spacing-large {
  letter-spacing: 0.9em;
  text-align: center;
  text-indent: 0.9em;
}
<div>
  <p>- Foo Bar Zan -</p>
  <p class="spacing">- Foo Bar Zan -</p>
  <p class="spacing-large">- Foo Bar Zan -</p>
</div>

Ответ 2

Использование прокладки будет более безопасным, если текст будет переведен на две строки. text-indent будет только отступать от первой строки текста.

p { 
  padding-left: 0.9em; 
}

Ответ 3

Если вы присмотритесь, верхняя часть без межстрочного интервала не будет также правильно центрирована. Единственное, что я могу придумать, это обезглавить его с помощью margin-left: 15px следующим образом:

p { margin-left: 15px; }

Ответ 4

Установите отрицательное поле равное расстоянию между буквами. Поэтому, если интервал между буквами составляет 10 пикселей, установите margin-right:-10px.

Использование text-indent оставит это пространство перед первой буквой, даже если родительский элемент слишком мал, чтобы вместить содержимое, в результате чего он не будет выглядеть по центру.