我想把项目放在文本后面。当它们换行时,它们应该直接在Text下面换行。我不想改变HTML标记,因为我的实际用例更复杂,不允许这样做。有可能吗?
.outer-container {
background-color: lightgray;
display: flex;
flex-wrap: wrap;
}
.item-container {
display: inline-flex;
flex-wrap: wrap;
}
.text {
border: 1px solid black;
}
.item {
min-width: 200px;
border: 1px solid black;
}
<div class="outer-container">
<div class="text">Text</div>
<div class="item-container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
</div>
</div>
我尝试使用inline-flex,但它不起作用。
当前:
想要的结果:
CodeSandBox:https://codesandbox.io/s/boring-hertz-idh1fb?file=/index.html
5条答案
按热度按时间bfrts1fy1#
你不需要flexbox或者任何复杂的布局。内联流布局就足够了
tyu7yeag2#
试试
display: contents
contents
这些元素本身不会产生特定的盒子。它们被它们的伪盒和它们的子盒替换。gmol16393#
在项目容器上使用显示内容而不是flex。它的子节点然后被外部容器中的flex处理,就好像它们直接在容器中一样。
b4wnujal4#
t40tm48m5#
问题是
outer-container
的两个子元素被display: flex;
整除,其中.text
得到完整的高度:D,如果你去掉wrap
属性:(。唯一的解决方案是将
.text
项插入到您给予display: flex;
提供属性的同一个容器中,如下所示: