div内で長すぎるテキストを切り抜く


85
<div style="display:inline-block;width:100px;">

very long text
</div>

純粋なCSSを使用して、次の新しい行に表示するのではなく、長すぎるテキストを切り取り、最大100pxのみを表示する方法

回答:


56
<div class="crop">longlong longlong longlong longlong longlong longlong </div>​

これは私が考えることができる1つの可能なアプローチです

.crop {width:100px;overflow:hidden;height:50px;line-height:50px;}​

このように、長いテキストは折り返されますが、overflow設定のために表示されません。line-height同じようheightに設定することで、1行だけが表示されるようにします。

こちらのデモとインタラクティブな例を含む素晴らしいオーバーフロープロパティの説明を参照してください。


1
ユーザーがブラウザでフォント設定(小さいテキストの場合)を変更した可能性があるため、折り返しを防ぐために「行の高さ」は当てになりません。同様に、大きなフォントの場合、divの高さをピクセル数に固定すると、ひどく見える可能性があります。特にモバイルブラウザと「Retina」画面では、デザインレイアウトが許せば、divの高さを柔軟に保つようにします。
PJ Brunet 2013年

154

次を使用できます。

overflow:hidden;

ゾーン外のテキストを非表示にします。

最後の文字が切り取られる場合があることに注意してください(したがって、最後の文字の一部は引き続き表示されます)。より良い方法は、最後に省略記号を表示することです。あなたはそれを使用することによってそれを行うことができますtext-overflow

overflow: hidden;
white-space: nowrap; /* Don't forget this one */
text-overflow: ellipsis;

空白:長いファイルパスを示す複数の行があるため、nowrapは実際にはそれほど必要ではありません。空白がないと、壊れない長いパスに省略記号が表示され、次の行に残りのパスが表示されます。キッカーは、テキスト(省略記号を含む)をコピーして、パス全体を貼り付けることです。いいね!
ロバートコッホ

(私のように)不思議に思っている場合は、古いバージョンのFirefoxでは省略記号が機能しません。「Firefoxバージョン7以降のテキストオーバーフロー:省略記号がサポートされています。」stackoverflow.com/questions/5990414/…–
PJ Brunet

全文などを表示するためにホバーにツールチップを表示したい場合はどうすればよいですか?
pedrorijo 9119

2
@ pedrorijo91あなたは単にtitle="full text goes here"htmlで使うことができます。
ジェリー



4

以下のコードは、あなたが決めた固定幅でテキストを非表示にします。しかし、レスポンシブデザインには完全には適していません。

.CropLongTexts {
  width: 170px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

更新

(モバイル)デバイスで、(固定幅)のためにテキストが互いに(混合されている)ことに気づきました...したがって、上記のコードを編集して、次のように応答して非表示になりました:

.CropLongTexts {
  max-width: 170px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

(max-width)は、(画面サイズ)に関係なく、テキストがレスポンシブに非表示になり、互いに混ざらないようにします。


3
このコードは質問に答えることができますが、このコードが質問に答える理由や方法に関する追加のコンテキストを提供すると、長期的な価値が向上します。
ドナルドダック

0

   .cut_text {
      white-space: nowrap; 
      width: 200px; 
      border: 1px solid #000000;
      overflow: hidden;
      text-overflow: ellipsis;
    }
<div class="cut_text">

very long text
</div>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.