这是我要实现的目标:
我尝试过的事情:
.container {
display: flex;
padding: 20px;
justify-content: space-between;
border: 1px solid black;
width: 400px;
}
.block {
flex: 1 1 calc(50% - 8px);
border: 1px dashed black;
padding: 5px 10px;
text-align: center;
white-space: nowrap;
min-width:0 ;
}
.block:first-child {
margin-right: 16px;
}
<div class="container">
<div class="block">Lorem ipsum ffffffff ffffffffff</div>
<div class="block">Lorem ipsum</div>
</div>
文本不会推送flex容器,有没有办法实现这一目标?
不知道这是否正是您想要的,但可能是display: inline-flex
和flex-grow: 1
却没有在.block
上施加特定宽度。
请检查:
.container {
display: flex;
padding: 20px;
justify-content: space-between;
border: 1px solid black;
width: 400px;
}
.block {
display: inline-flex;
flex-grow: 1;
flex-shrink: 1;
border: 1px dashed black;
padding: 5px 10px;
justify-content: center;
flex-wrap: nowrap;
min-width: 0;
}
.block:first-child {
margin-right: 16px;
}
<div class="container">
<div class="block">Lorem ipsum</div>
<div class="block">Lorem ipsum</div>
</div>
<div class="container">
<div class="block">Lorem ipsum ffffffff ffffffffff</div>
<div class="block">Lorem ipsum</div>
</div>
但是,当然,如果其中一个块的文本太大,它将分解到下一行,除非您应用某种省略号
每个弹性项目将占用所需的空间。
#container {
width: 400px;
padding: 20px;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid tomato;
}
.flex-block {
padding: 10px;
border: 1px solid purple;
margin: 5px;
}
<div id="container">
<div class="flex-block">lorem ipsum dolar something</div>
<div class="flex-block">some more lorem ipsum but this time make it longer</div>
</div>
在此示例中,如果要将弹性商品的宽度限制为最大宽度(例如50%),则可以添加flex:1;对项目以及align-self:拉伸;这样,无论内部内容如何,每个项目都变为相同的高度