私はflex
のコンテナを持っています。私は中間の子供が全体のスペースを取るので、私はそれを設定しますflex: 1
。ここまでは順調ですね。フレックスの子にテキストオーバーフローの省略記号がありません
次のレベルでは中子に2人の子供がいるので、私もそれをフレックスに設定したいと思います(私を失った場合はスニペットにスキップしてください)、最初の子は省略記号のスタイルを設定します。さて、省略記号は機能しなくなりました。
ボタンをクリックすると、すべてが短いテキストでうまくいくことがわかります。
アイデア?クラスの.elは幅が設定されていないためだ
function toggle() {
var el = document.querySelector('.el');
el.textContent = el.textContent === 'short' ? 'long long long text' : 'short';
}
.wrapper {
display: flex;
width: 200px;
align-content: stretch;
padding: 5px;
min-width: 0;
border: 1px solid
}
.wrapper .child2 {
flex-grow: 1;
}
.flex {
display: flex;
min-width: 0;
}
.el {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.child1 {
background: red;
}
.child2 {
background: blue;
}
.child3 {
background: green;
}
.wrapper>* {
padding: 5px;
}
<div class="wrapper">
<div class="child1">child1</div>
<div class="child2">
<div class="flex">
<div class="el">long long long text</div>
<div>a</div>
</div>
</div>
<div class="child3">child3</div>
</div>
<button onclick="toggle()">Toggle ellipsis text</button>
ありがとう!私はそれがそれのために計算されたフレックスとして幅を取るしたいと思う.. –