Существует аналогичный вопрос , который касается input
элементов, имеющих собственную минимальную ширину, определяемую параметром size
.
Я пытаюсь создать макет, в котором естьinline-flex
с flex-direction: column
блоком так:
.item {
border: 1px solid gray;
display: inline-flex;
flex-direction: column;
}
<div>
<div class="item">
short
<progress />
</div>
<div class="item">
long on long so long yes long very long certainly longer than the default width of a progress
<progress />
</div>
</div>
<p>
I want the first progress to be as long as the text "short" is.
</p>
Fiddle
Когда текст длинный, progress
правильно растягивается по доступной ширине, которая определяетсяпо длине текста, поскольку родительский элемент div
равен inline-flex
, поэтому он сам по себе не будет растягиваться в родительском элементе по горизонтали.
Однако, когда текст очень короткий, progress
неуменьшите текст до той же длины.Вместо этого он остается на некотором (вероятно, специфичном для UA) минимуме.Я могу повлиять на его ширину с помощью width
, но чем нужно фиксированное число, мне нужно, чтобы он следовал за текстом и скопировал его ширину.
В случае input
в связанном вопросеможно задать небольшое значение size
и решить проблему, однако при использовании progress
такого атрибута не существует.
Есть ли способ решить эту проблему с разметкой, чтобы ширина прогресса всегда соответствовала ширине текста