回答:
コンテンツの改行を防ぐ方法はいくつかあります。使用
は1つの方法であり、単語間で正常に機能しますが、空の要素と一部のテキストの間で使用しても、明確な効果はありません。同じことが、アイコンに画像を使用する、より論理的でアクセスしやすい方法にも当てはまります。
最も堅牢な代替手段はnobr
マークアップを使用することです。これは非標準ですが、普遍的にサポートされており、CSSが無効になっている場合でも機能します。
<td><nobr><i class="flag-bfh-ES"></i> +34 666 66 66 66</nobr></td>
(
この場合、スペースの代わりに使用できますが、必須ではありません。)
別の方法はnowrap
属性です(非推奨/廃止されましたが、いくつかのまれな癖を除いて、引き続き正常に動作します)。
<td nowrap><i class="flag-bfh-ES"></i> +34 666 66 66 66</td>
次に、CSS対応のブラウザーで機能するCSSの方法があり、もう少しコードが必要です。
<style>
.nobr { white-space: nowrap }
</style>
...
<td class=nobr><i class="flag-bfh-ES"></i> +34 666 66 66 66</td>
nobr
。ありません。
nobr
タグが使用するのと同じカテゴリーであるblink
:w3.org/TR/html5/obsolete.html#obsoleteのどちらかが、あなたはWeb標準に向けて作業したり、あなたは混沌としたウェブに向けて作業します。選択はあなた次第です。
nobr
はありませんが、まだ非推奨であり、「使用しないでください」。
場合によっては(JavaScriptによって生成および挿入されたHTMLなど)、幅がゼロのジョイナーを挿入することもできます。
.wrapper{
width: 290px;
white-space: no-wrap;
resize:both;
overflow:auto;
border: 1px solid gray;
}
.breakable-text{
display: inline;
white-space: no-wrap;
}
.no-break-before {
padding-left: 10px;
}
<div class="wrapper">
<span class="breakable-text">Lorem dorem tralalalala LAST_WORDS</span>‍<span class="no-break-before">TOGETHER</span>
</div>
これが本当の解決策です:
<td>
<span class="inline-flag">
<i class="flag-bfh-ES"></i>
<span>+34 666 66 66 66</span>
</span>
</td>
css:
.inline-flag {
position: relative;
display: inline;
line-height: 14px; /* play with this */
}
.inline-flag > i {
position: absolute;
display: block;
top: -1px; /* play with this */
}
.inline-flag > span {
margin-left: 18px; /* play with this */
}
例、常にテキストの前にある画像:
nobrは信頼性が高すぎます。テーブルを使用してください
<table>
<tr>
<td> something </td>
<td> something </td>
</tr>
</table>
それはすべて同じ線上にあり、すべてがお互いに同じレベルであり、後で何かを変更したい場合は、はるかに多くの自由があります。