Неправильное выравнивание текста в тексте
Я заметил странное поведение при использовании разметки букв и выравнивания текста: центр вместе.
Увеличьте пространство, чтобы текст был ближе к левому краю элемента.
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
оставит это пространство перед первой буквой, даже если родительский элемент слишком мал, чтобы вместить содержимое, в результате чего он не будет выглядеть по центру.