html
<div class="container">
<div id="setter">
<span>some variable content</span>
</div>
<div class="wrap">
<span>
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
</span>
</div>
</div>
CS
.container {
max-width: 200px;
}
.wrap {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
ケース:
.wrap
div 内の span の幅に基づいて、クラス内の span の幅を動的に設定する必要があります#setter
。CSS でわかるように、ellipsis
2 番目の div でオーバーフローを使用しています。divsetter
コンテンツの長さは変化します。したがって、目標はテキストの幅lorem ipsum
が最初の div のコンテンツの幅より広くならないようにすることです。
コードペン:http://codepen.io/jacek213/pen/pbPkmQ
これを純粋な CSS で実現したいのですが、可能ですか? 不可能な場合は、js での Angular 対応ソリューション (jQuery の使用は OK) が歓迎されますが、この構造で構築された多数のレコードを一度に表示するため、効率的である必要があります。
ベストアンサー1
ちょっとしたギミックですが、純粋なCSSで実現できます
#setter {
display: inline-block;
}
.container {
max-width: 200px;
position: relative;
display: inline-block;
padding-bottom: 1.125em;
}
.wrap {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
position: absolute;
left: 0;
right: 0;
}
<div class="container">
<div id="setter">
<span>some variable content</span>
</div>
<div class="wrap">
<span>
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
</span>
</div>
</div>