pea*_*red 6 html css ellipsis css3 flexbox
我在flex容器中有两列.其中一列(橙色)包含一个化身,其宽度应恰好是容器的10%.
另一列(蓝色)包含面板,面板的标题可能很长,所以我应该通过css截断它.这张照片显示了我的期望:
我期待的是:

但是当我想要做的时候text-overflow: ellipsis,我的第二排比柔性容器更宽.以下是此行为的示例:
https://jsfiddle.net/8krtL9ev/1/
.container {
background: #ddd;
width: 400px;
height: 200px;
padding: 10px;
display: flex;
}
.row1 {
background: red;
flex-basis: 10%;
flex-shrink: 0;
}
.row2 {
background: blue;
flex-basis: 90%;
margin-left: 10px;
padding: 10px;
display: flex;
}
.panel {
background: green;
flex-basis: 50%;
overflow: hidden;
}
.panel-title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="row1">
</div>
<div class="row2">
<div class="panel">
<div class="panel-title">
<span>Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum.</span>
</div>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
使用width代替flex-basis. 因为在本文档中他们提到了
9.9.3。弹性项目固有尺寸贡献
Flex 项目的主要大小最小内容/最大内容贡献是其外部最小内容/最大内容大小,由其 Flex 基本大小限制为最大值(如果不可增长)和/或最小值(如果它不可收缩),然后通过其最小/最大主要尺寸属性进一步限制。
不要忘记将宽度设置calc(90% - 30px)为row2宽度
.container {
background: #ddd;
width: 400px;
height: 200px;
padding: 10px;
display: flex;
}
.row1 {
background: red;
/* flex-basis: 10%; */
width: 10%;
flex-shrink: 0;
}
.row2 {
background: blue;
/* flex-basis: 90%; */
width: calc(90% - 30px);
margin-left: 10px;
padding: 10px;
display: flex;
}
.panel {
background: green;
flex-basis: 50%;
overflow: hidden;
}
.panel-title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="row1">
</div>
<div class="row2">
<div class="panel">
<div class="panel-title">
<span>Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum. Lorem ipsum.</span>
</div>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3147 次 |
| 最近记录: |