ホームページ > ウェブフロントエンド > CSSチュートリアル > 省略記号とカスタム カウンタ (「...123 T.」) を使用して 2 行目以降のテキスト オーバーフローを非表示にするにはどうすればよいですか?

省略記号とカスタム カウンタ (「...123 T.」) を使用して 2 行目以降のテキスト オーバーフローを非表示にするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-30 05:02:14
オリジナル
406 人が閲覧しました

How can I hide text overflow after the second line with an ellipsis and a custom counter (

省略記号とカウンターを使用した 2 行目の後のテキスト オーバーフローの非表示

問題:

部分の非表示2 行を超えるテキストに「...123 T」を追加します。非表示のオーバーフロー インジケーターには賢い解決策が必要です。

解決策:

今後のアップデートでは line-clamp プロパティを使用したより簡単なアプローチが提供される予定ですが、ここでは創造的なハックを紹介します。これを達成する効果:

CSS:

.container {
  max-width: 200px;
  margin: 5px;
}

.main-text {
  line-height: 1.2em; /* line height */
  max-height: calc(2 * 1.2em); /* limit height to 2 lines */
  overflow: hidden;
  display: inline-block;
  position: relative;
}

.main-text:after {
  content: "123 T.";
  display: inline-block;
  width: 40px;
  position: relative;
  z-index: 999;
  /* big box shadow to hide the ellipsis */
  box-shadow:
    40px 0 0 #fff,
    80px 0 0 #fff,
    120px 0 0 #fff,
    160px 0 0 #fff;
  color: #8e8f8f;
  font-size: 10px;
  background: #fff; /* cover text beneath */
  margin-left: 2px;
}

.main-text span {
  position: absolute;
  /* bottom right position */
  top: 1.2em; /* 1 line height */
  right: 0;
  padding: 0 3px;
  background: #fff; /* cover text beneath */
}

.main-text span:before {
  content: "..."; /* ellipsis */
}

.main-text span:after {
  content: "123 T.";
  color: #8e8f8f;
  font-size: 10px;
}
ログイン後にコピー

HTML:

<div class="container">
  <div class="main-text">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam metus mi, dapibus sit amet posuere eu, porttitor condimentum nulla. Donec convallis lorem justo, eget malesuada lorem tempor vitae. Aliquam sollicitudin lacus ipsum, at tincidunt ante condimentum
    vitae. <span></span>
  </div>
</div>

<div class="container">
  <div class="main-text">
    Lorem ipsum <span></span>
  </div>
</div>

<div class="container">
  <div class="main-text">
    Lo <span></span>
  </div>
</div>

<div class="container">
  <div class="main-text">
    Lorem ipsum dolor sit ameta, adipiscing elit. Nam metus <span></span>
  </div>
</div>

<div class="container">
  <div class="main-text">
    Lorem ipsum dolor sit ameta, adipiscing elit <span></span>
  </div>
</div>
ログイン後にコピー

この手法により、「.. .123T」テキストが 2 行目で切り詰められた後にインジケーターが表示されます。

以上が省略記号とカスタム カウンタ (「...123 T.」) を使用して 2 行目以降のテキスト オーバーフローを非表示にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート