Вы можете передать свойство table-layout
, чтобы уменьшить контейнер до ширины наименьшего содержимого.
Затем необходимо установить ширину .has-content
, равную фактической ширине содержимого, с помощью * 1005. *
.dont-expand
не требует ширины, он будет заключен в доступную доступную ширину, , если само слово или изображение не шире .has-width
, это единственное знакомое мне поведение, которое я знаю из.
пример:
.outer {
position: absolute;
border: 1px solid black;
display: table;
width: 0;
}
/* This element sets the width of the container */
.has-width {
width: max-content;
margin-top: 10px;
background: rgba(0, 128, 0, .2);
border-right: 2px solid green;
color: #888;
}
.dont-expand {
/* nothing needed here */
}
.bis {bottom:0}
<div class="outer">
<div class="dont-expand">
How do I get this text to wrap instead of growing the container?
</div>
<div class="has-width">
I should be setting the width of "container".
</div>
</div>
<div class="outer bis ">
<div class="dont-expand">
How do I get this text to wrap instead of growing the container?
</div>
<div class="has-width">
i'm container's width !
</div>
</div>
https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout
Свойство table-layout CSS устанавливает алгоритм, используемый для из ячеек, строк и столбцов.
здесь нет ничего, кроме 1 столбца, так как дочерние элементы .outer
не имеют сброса display
. Идея состоит в том, чтобы только использовать собственные свойства сжатия / расширения алгоритма table-layout display
в главной оболочке и не перестраивать визуальную таблицу HTML из div.
Поиграйте с этим поведением table-layout
, чтобы ознакомиться с ним, и не думайте о каких-либо HTML
табличных тегах, это только стиль CSS;)