Lor*_*con 8 html javascript css css3 flexbox
我有一个带有display: flex属性集的容器元素.一个孩子有固定的宽度(flex: 0 0 auto),另一个没有(flex: 1).灵活的孩子有一些其他的孩子:我希望这个容器(inner)根据父宽度剪辑其子元素.
我设法做到了这一点,但我也希望得到省略号溢出,以防内容被剪裁(子节点数不固定).
到目前为止这是我的代码:
.outer {
border: 1px solid red;
display: flex;
width: 400px;
}
.inner {
display: flex;
min-width: 0;
overflow: hidden;
flex: 1;
text-overflow: ellipsis;
}
.child {
display: inline-block;
white-space: nowrap;
flex: 1;
border: 1px solid blue;
}
.btn {
border: 1px solid green;
flex: 0 0 auto;
}
Run Code Online (Sandbox Code Playgroud)
住在这里:http://jsbin.com/niheyiwiya/edit?html,css,output
如何获得以下预期结果?(黑客欢迎 - 请css取悦!)
您的布局存在一些问题:
text-overflow: ellipsis仅适用于display: block和display: inline-block容器。失败了,因为您已.inner设置为display: flex。
text-overflow: ellipsis必须包含white-space: nowrap在同一声明中。您的.inner规则中遗漏了它。
省略号适用于文本,而不适用于块级元素
尝试这个:
* {
margin: 15px 1px
}
.outer {
border: 1px solid red;
display: flex;
width: 400px;
}
.inner {
/* display: flex */ /* removed */
min-width: 0;
overflow: hidden;
flex: 1;
text-overflow: ellipsis;
white-space: nowrap; /* new */
}
.child {
display: inline; /* adjusted */
white-space: nowrap;
flex: 1;
}
.btn {
border: 1px solid green;
flex: 0 0 auto;
}Run Code Online (Sandbox Code Playgroud)
<div class="outer">
<div class="inner">
<div class="child">child 1</div>
<div class="child">child 2</div>
<div class="child">child 3</div>
<div class="child">child 4</div>
<div class="child">child 5</div>
<div class="child">child 6</div>
<div class="child">child 7</div>
</div>
<div class="btn">My big big big button!</div>
</div>Run Code Online (Sandbox Code Playgroud)
有关text-overflow: ellipsis此处的更多信息:在多行文本中使用省略号