純粋な CSS を使用して別の要素の幅に基づいてスパンの幅を設定する 質問する

純粋な CSS を使用して別の要素の幅に基づいてスパンの幅を設定する 質問する

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;  
}

ケース:

.wrapdiv 内の span の幅に基づいて、クラス内の span の幅を動的に設定する必要があります#setter。CSS でわかるように、ellipsis2 番目の 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>

おすすめ記事