長いテキスト/単語を固定幅のスパンでラップまたは分割するにはどうすればよいですか?


104

固定幅のスパンを作成したいのですが、のようにスパンに何かを入力すると、<span>lgasdfjksdajgdsglkgsadfasdfadfasdfadsfasdfasddkgjk</span>スペースのないテキストの長い文字列で、単語が壊れるか、次の行に折り返されます。

何か案は?

回答:


192

CSSプロパティを使用できますword-wrap:break-word;。これは、単語がスパン幅に対して長すぎる場合に単語を分割します。

span { 
    display:block;
    width:150px;
    word-wrap:break-word;
}
<span>VeryLongLongLongLongLongLongLongLongLongLongLongLongExample</span>


1
asp.netラベルコントロールに適しています。ありがとう!
etlds 2014年

41
追加white-space: normalすることで、邪魔になる可能性のある外側のスタイルをオーバーライドできます:) .. inline-block同様に機能しますblock
Katia

ブロック要素内にある2つのスパンを分割するのはどうですか?
ダニエルスプリンガー、

この回答を使用しても問題が解決しない場合は、必ず「幅」を指定してください。指定しないと機能しない可能性があります
Staccato

どこでブレークするかを知るために幅が必要です
DFSFOT

40

以下を追加してcssを試してくださいwhite-space

span {
    display: block;
    word-wrap:break-word;
    width: 50px;
    white-space: normal
}

5
ありがとう!テキストが折り返されない理由を理解できませんでした。空白が理由でした。
mdiehl13

1
私が置いた後、私の問題も修正されました:white-space: normal
majorBummer

空白と折り返しが必要な場合の参照表を以下に示します。css
tricks.com

16

このような

デモ

  li span{
    display:block;
    width:50px;
    word-break:break-all;
}

私の友人がスパンの幅を置くときに欲しい:50px; 私のスパンの値は50pxでのみ表示され、他の値は次の行に進み、50pxで表示されます!!!
محمدکثیری

1
@ mamal10 Maxime Lorantのソリューションを確認してください。
Mr_Green 2013

3

デフォルトでspanは、a はinline要素です...そのため、これはデフォルトの動作ではありません。

CSSにspan追加することで、そのように動作させることができdisplay: block;ます。

span {
    display: block;
    width: 100px;
}


0

質問の実用的な範囲を拡張するため、および与えられた回答の付録として:セレクタをもう少し指定する必要がある場合があります。

フルスパンをdisplay:inline-blockとして定義すると、画像の表示が困難になる可能性があります。

したがって、私はそのようにスパンを定義することを好みます:

span {
  display:block;
  width:150px;
  word-wrap:break-word;      
}
p span, a span,
h1 span, h2 span, h3 span, h4 span, h5 span {
  display:inline-block;
}
img{
  display:block;
}

0

私の場合、display:blockは意図したとおりにデザインを壊していました。

max-widthプロパティは、ちょうど私を救いました。

また、スタイリングにも使用できますtext-overflow: ellipsis

私のコードは

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