При принудительном выравнивании строки текста или встроенных элементов внутри своего родителя путем добавления правила ::after
я заметил, что родитель будет расширяться по высоте, чтобы соответствовать псевдоэлементу, даже если я попытаюсь предотвратить это. :
.test {
background-color:#ccc;
text-align:justify;
}
.test:after {
display:inline-block;
content:'';
width:100%;
height:0;
}
<div class="test">test 1 foo bar</div>
Вот что я пробовал до сих пор и что мне это дало (в порядке возрастания отчаяния):
height:0
на псевдоэлементе: без измененийline-height:0
на псевдоэлементе: без измененийoverflow:hidden
на псевдоэлементе: без изменений- комбинация 2 или всех вышеперечисленных: без изменений
- отрицательное поле или заполнение псевдоэлемента: без изменений (отрицательное заполнение недопустимо, насколько я знаю, но в этот момент я начал впадать в отчаяние)
white-space:nowrap
на псевдоэлементе: без измененийwhite-space:nowrap
на родительском элементе: сломал макетposition:relative;top:-100%
на псевдоэлементе: без измененийposition:absolute
на псевдоэлементе: сломал макет
Любые предложения, кроме предоставления родителю фиксированной высоты или использования flexbox?
2 ответа
Единственный способ, которым я знаю, как решить выравнивание одной строки текста, - это установить высоту и высоту строки:
.test {
background-color:#ccc;
text-align:justify;
height: 1em;
line-height: 1;
}
.test:after {
display:inline-block;
content:'';
width:100%;
}
Ваша проблема связана с display: inline-block
в псевдоэлементе :after. Поскольку это встроенный элемент, вы также видите некоторые эффекты от пробела. Если вы измените его на display: block
, все будет работать как положено.
text-align:justify
, очевидно, не работает с нестрочными элементами (я все равно попробовал, если ошибся). Так что нет, это не работает.
Похожие вопросы
Связанные вопросы
Новые вопросы
html
HTML (язык гипертекстовой разметки) — это язык разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы относительно HTML должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется отдельно и часто в паре с [CSS] и [JavaScript].