CSSオーバーフロー-1行のみのテキスト


134

私はdiv次のCSSスタイルを持っています:

width:335px; float:left; overflow:hidden; padding-left:5px;

その中にdiv長いテキスト行を挿入すると、改行されてすべてのテキストが表示されます。私が欲しいのは、改行しないテキストを1行だけにすることです。テキストが長い場合、このあふれるテキストを消したい。

高さの設定を考えていましたが、間違いのようです。

多分私がフォントと同じ高さを追加した場合、それは機能し、異なるブラウザで問題を引き起こさないはずですか?

どうやってやるの?


jsFiddleで問題を実証できますか?
Harry Joy

回答:


352

1行に制限する場合white-space: nowrap;は、div で使用します。


しかし、テキストが指定された寸法を超えている場合、省略記号は表示されません。stackoverflow.com/questions/26342411/...
SearchForKnowledge

うまくいきました。しかし...、行の長さが長く、それが書かれたdivから外れるとき、私はもっと多くの文字を表示する必要があるかどうかが必要です。
Moshii 2016

非表示のテキストにハイパーリンクが含まれている場合、これは奇妙な動作をします。ページをタブで移動すると、非表示になっているはずの非表示のテキストのリンクが画面にスクロールします。
エリック

76

そのdivに利用可能なコンテンツがまだあることを示す場合は、「省略記号」を表示することができます。

text-overflow: ellipsis;

これはwhite-space: nowrap;Septnuitsによって提案されたものに追加する必要があります。

また、Firefoxでこれを処理するには、必ずこのスレッドをチェックアウトしてください。


47
私はあなたが使用しなければならないと考えているtext-overflow: ellipsis;overflow: hidden;し、white-space: nowrap;それを動作させるために
フランシスコ・コスタ

caniuse.com/#feat=text-overflow aka。はい、できます。ユーザーが引き続きアクセスできるように、コンテンツ全体をtitle属性に入れることを検討してください。
DanMan 2013年

私のただ一つのラインでのショーと省略記号を表示する前にDIVを移入しません... stackoverflow.com/questions/26342411/...jsfiddle.net/ofrj55j4/20
SearchForKnowledge

43

次のcssコードを使用できます。

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

CSS のtext-overflowプロパティは、要素のボックスからテキストがオーバーフローしたときにテキストがクリップされる状況を扱います。それは可能なクリッピング(すなわち隠された、カットオフ)、表示省略記号を(「...」、Unicodeの範囲値U + 2026)。

テキストオーバーフローは、コンテナーのオーバーフロープロパティの値がhiddenscrollまたはautoおよび空白である場合にのみ発生することに注意してください:nowrap;

テキストオーバーフローは、ブロックまたはインラインブロックレベルの要素でのみ発生する可能性があります。これは、要素がオーバーフローするために幅を持つ必要があるためです。オーバーフローは、directionプロパティまたは関連する属性によって決定される方向で発生します。



0

追加してください、長いテキストがある場合は、次のcssコードを使用できます。

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

行テキスト全体を表示します。



-2

私は同じ問題を抱えていて、私はそれを使ってそれを解決しました:

display: inline-block;

divでの質問。

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