【发布时间】:2023-03-09 20:20:01
【问题描述】:
我有一个容器元素,它可以包含可变数量的子元素,我想缩放这些子元素的宽度。
我已经设置了一个简单的 plunker:
https://plnkr.co/edit/ef0AGPsK7FJJyBqgWuMi?p=preview
在这个 plunker 中,您可以缩小 DOM,name 和 number 元素将使用它们的省略号来适应父元素中的内容。这很好。
但是,当您放大 DOM 时,您会看到子元素分散开来,因此它们在父元素上平分。这是因为flex: 1。但我希望容器元素是正确显示内容所需的最大宽度,而不是填充父容器元素。
/* Styles go here */
.conversation-container {
display: flex;
width: calc(100% - 20px);
border: 1px solid black;
background-color: green;
padding: 10px;
}
.conversation-container .conversation-holder {
flex: 1;
background-color: yellow;
padding: 5px;
border: 1px solid white;
margin-right: 5px;
}
.conversation-container .conversation-holder .name {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 50%;
display: inline-block;
}
.conversation-container .conversation-holder .number {
float: left;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 50%;
}
.conversation-container1 {
display: flex;
width: calc(100% - 20px);
border: 1px solid black;
background-color: green;
padding: 10px;
}
.conversation-container1 .conversation-holder {
background-color: yellow;
padding: 5px;
border: 1px solid white;
margin-right: 5px;
}
.conversation-container1 .conversation-holder .name {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 50%;
display: inline-block;
}
.conversation-container1 .conversation-holder .number {
float: left;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 50%;
}
<h1>Scalable content using flex, example 1</h1>
<div class="conversation-container">
<div class="conversation-holder">
<span class="name">Namefrom Someone</span>
<span class="number">555666444213321</span>
</div>
<div class="conversation-holder">
<span class="name">Namefrom Someone</span>
<span class="number">555666444123123</span>
</div>
<div class="conversation-holder">
<span class="name">Namefrom Someone</span>
<span class="number">555666444123321</span>
</div>
</div>
<h1>Scalable content using flex, example 2</h1>
<div class="conversation-container1">
<div class="conversation-holder">
<span class="name">Namefrom Someone</span>
<span class="number">555666444213321</span>
</div>
<div class="conversation-holder">
<span class="name">Namefrom Someone</span>
<span class="number">555666444123123</span>
</div>
<div class="conversation-holder">
<span class="name">Namefrom Someone</span>
<span class="number">555666444123321</span>
</div>
</div>
【问题讨论】:
标签: html css flexbox alignment