ホームページ  >  記事  >  ウェブフロントエンド  >  単行テキストや複数行テキストからはみ出す場合に省略記号を表示する方法

単行テキストや複数行テキストからはみ出す場合に省略記号を表示する方法

yulia
yuliaオリジナル
2018-09-13 15:46:451777ブラウズ


ページ レイアウト中に、テキスト コンテンツがボックスを超える状況がよく発生します。 1 行のテキストの省略記号のオーバーフロー表示を実現したい場合は、 text-overflow:ellipsis 属性を使用することを誰もが知っておく必要があります。 、もちろん幅を広げる必要があります。次に、部分的なブラウジングに対応しています。 実装方法:

overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;

効果は図に示すとおりです:

単行テキストや複数行テキストからはみ出す場合に省略記号を表示する方法しかし、この属性は

単一行テキストの省略記号のオーバーフロー表示

のみをサポートします。楕円の行テキストオーバーフロー表示。次に、次のように、複数行のテキストがオーバーフローした場合に省略記号を表示する方法に焦点を当てます。 実装方法:

display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;

効果は図に示すとおりです:

適用範囲: 単行テキストや複数行テキストからはみ出す場合に省略記号を表示する方法

WebKitのCSS拡張属性を使用しているため、この方法はWebKitブラウザとモバイル端末に適しています。注:

1. -webkit-line-clamp は、ブロック要素に表示されるテキストの行数を制限するために使用されます。 この効果を実現するには、他の WebKit プロパティと組み合わせる必要があります。共通の組み合わせ属性:

2. 表示: -webkit-box; オブジェクトをフレキシブル ボックス モデルとして表示するために組み合わせる必要がある属性。
3. フレックス ボックス オブジェクトのサブ要素の配置を設定または取得するには、-webkit-box-orient を属性と組み合わせる必要があります。 実装方法:

p{position: relative; line-height: 20px; max-height: 40px;overflow: hidden;}
p::after{content: "..."; position: absolute; bottom: 0; right: 0; padding-left: 40px;
background: -webkit-linear-gradient(left, transparent, #fff 55%);
background: -o-linear-gradient(right, transparent, #fff 55%);
background: -moz-linear-gradient(right, transparent, #fff 55%);
background: linear-gradient(to right, transparent, #fff 55%);
}

効果は図の通り:

適用範囲:

この方法は応用範囲が広いですが、テキストが行を超えない場合は省略記号も表示されます。このメソッドはjsで最適化できます。 単行テキストや複数行テキストからはみ出す場合に省略記号を表示する方法

注:

1. 余分なテキストが露出しないように、高さを line-height の整数倍に設定します。

2. テキストの半分だけが表示されないように、p::after にグラデーションの背景を追加します。
3. ie6-7 はコンテンツの内容を表示しないため、ie6-7 と互換性を持たせるためのタグを追加する必要があります (例: ...)。 ::after を :after に置き換える必要があります。

以上が単行テキストや複数行テキストからはみ出す場合に省略記号を表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。