Существует множество решений, таких как font-size:0
, word-spacing
, margin-left
, letter-spacing
и т. Д.
Обычно я предпочитаю использовать letter-spacing
, потому что
- кажется нормальным, когда мы присваиваем значение, которое больше ширины дополнительного пробела (например,
-1em
). - Однако с
word-spacing
и margin-left
, когда мы установим, все будет не в порядкебольшее значение, например -1em
. - Использование
font-size
не удобно, когда мы пытаемся использовать em
как font-size
единицу.
Итак, letter-spacing
кажетсябыть лучшим выбором.
Однако я должен предупредить вас
, когда вы используете letter-spacing
, вам лучше использовать -0.3em
или -0.31em
, а не другие.
* {
margin: 0;
padding: 0;
}
a {
text-decoration: none;
color: inherit;
cursor: auto;
}
.nav {
width: 260px;
height: 100px;
background-color: pink;
color: white;
font-size: 20px;
letter-spacing: -1em;
}
.nav__text {
width: 90px;
height: 40px;
box-sizing: border-box;
border: 1px solid black;
line-height: 40px;
background-color: yellowgreen;
text-align: center;
display: inline-block;
letter-spacing: normal;
}
<nav class="nav">
<span class="nav__text">nav1</span>
<span class="nav__text">nav2</span>
<span class="nav__text">nav3</span>
</nav>
Если вы используете Chrome (тестовая версия 66.0.3359.139) или Opera (тестовая версия 53.0.2907.99), то, что вы видите, может быть:
Если вы используете Firefox (60.0.2), IE10 или Edge, то, что вы видите, может быть:
Это интересно.Итак, я проверил mdn-letter-spacing и нашел это:
length
Определяет дополнительное межсимвольное пространство в дополнение к стандартному пространству между символами,Значения могут быть отрицательными, но могут быть определенные для реализации ограничения. Пользовательские агенты не могут дополнительно увеличивать или уменьшать межсимвольное пространство для выравнивания текста.
Кажется, что в этом причина.