【发布时间】:2016-07-29 11:27:24
【问题描述】:
我有一个由按钮旁边的文本组成的组件。如果没有足够的空间,文本必须缩小并被切断。像这样:
.container .box {
background-color: #efefef;
padding: 5px;
border: 1px solid #666666;
flex: 0 0 auto;
}
.container .text {
flex: 1 1 auto;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.container {
display: flex;
}
<div class="container">
<div class="text">This is a text that is supposed to get truncated properly when needed.</div>
<div class="box">Hello</div>
</div>
重要提示:要查看它是否正常工作,请最大化 sn-p 并缩小浏览器窗口以查看截断的文本。
如您所见,它运行良好。
在另一个弹性容器内
当我尝试将此组件放入另一个 flex 容器时,问题就出现了。
我的页面由一个固定的侧面区域和右侧的剩余部分组成,这些部分会根据剩余空间进行调整。我的组件必须适合第二部分,所以我把它放在那里:
.container .box {
background-color: #efefef;
padding: 5px;
border: 1px solid #666666;
flex: 0 0 auto;
}
.container .text {
flex: 1 1 auto;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.container {
display: flex;
}
.main {
display: flex;
}
.main .side {
width: 100px;
background-color: #ff9900;
flex: 0 0 auto;
}
.main .content {
flex: 1 1 auto;
}
<div class="main">
<div class="side"></div>
<div class="content">
<div class="container">
<div class="text">This is a text that is supposed to get truncated properly when needed.</div>
<div class="box">Hello</div>
</div>
</div>
</div>
在第二种情况下,文本不会缩小。我正在使用 Chrome,但在其他浏览器中似乎也存在问题。
【问题讨论】: