さて、これは古い質問だと思いますが、どのプロパティをいつ使用するかについて、いくつかの有用な説明があるかもしれないと真剣に考えています。既存の答えを見ると、説明なしで解決策を提供していると思うので、これが私の試みです。コンテキストでは、デフォルトでは、コンテナは元の形式で単語を保持する必要があるため、単一の長い単語を分割しようとはしません。
そうは言っても、単語を分割する3つの主な方法には、、、、overflow-wrap
がありword-break
ますhypens
。でも、誇大広告についてはあまり深く掘り下げません。
だから最初に。質問で使用されているようword-wrap
ですが、ドキュメントを読んでいると、非推奨になり、一部のブラウザは単にエイリアスをに設定することにしましたoverflow-wrap
。おそらくそれを使用しない方が望ましいでしょう。
2つのプロパティの違いはドキュメントではかなり明確ですが、わかりやすくするために、overflow-wrap
実際には2つの可能な値しかなく、単語がオーバーフローしたかどうかを検出します。含まれている場合、デフォルトでは単語全体が次の行に移動します。が設定されている場合break-word
、単語全体をその行に配置できなかった場合にのみ単語が分割されます。
#fos { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size:14px;
font-weight: normal;
line-height: 18px;
width: 238px;
height:38px;
cursor: pointer;
overflow-wrap: break-word;
border:2px solid; }
#sp { }
<div id="fos">
<span id="sp">The longest word ever: pneumonoultramicroscopicsilicovolcanoconiosis and then some.</span>
</div>
あなたはpneumonoulを見ることができます...それが長い単語を分離しようとした後、長い単語は次の行で必要な場所で正確に壊れます。
対照的に、今はword-break
。これにはよりきめ細かいプロパティがあり、実際にはbreak-word
オプションもあります。これは上記のスニペットと同義であるため、どちらを使用するかは非常に簡単だと思います。
ただし、本来意図されていた場所に単語を合わせるために、可能な限り単語を分割word-break
する値も提供します。break-all
単語を改行する必要があるかどうかを判断しようとはしません。オーバーフローした場所で改行を押し込むだけです。ここでの上記との最大の違いは、私たちが使用する長い単語が今でも一番上にあるということです。
#fos { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size:14px;
font-weight: normal;
line-height: 18px;
width: 238px;
height:38px;
cursor: pointer;
word-break: break-all;
border:2px solid; }
#sp { }
<div id="fos">
<span id="sp">The longest word ever: pneumonoultramicroscopicsilicovolcanoconiosis and then some.</span>
</div>
そして最後に、hyphens
単語を分割する独自の特別な方法があります。詳細については、ドキュメントをご覧ください。また、言語が異なれば単語を分割する方法も異なりますが、幸いなことに、hyphens
プロパティは属性にフックしてlang
何をすべきかを理解しています。
人々が提案した別のオプションは、スペースwhite-space
を介してテキストを分割しようとするプロパティを使用することです。私が使用した例では、単語自体がコンテナよりも長いため、これは状況を改善しません。このCSSプロパティについて注意すべき重要なことは、これは単語をそれ自体の中で分割しようとはせず、適切な場合はいつでもスペースを介して分割しようとすることです。
#fos { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size:14px;
font-weight: normal;
line-height: 18px;
width: 238px;
height:38px;
cursor: pointer;
white-space: normal;
border:2px solid; }
#sp { }
<div id="fos">
<span id="sp">The longest word ever: pneumonoultramicroscopicsilicovolcanoconiosis and then some.</span>
</div>
お役に立てれば。