《 11:43 公開/更新》
日本語のように単語の区切りが曖昧な言語で、単語の途中で自動改行されるのを防ぐ方法としては、spanとかで囲んだ単語に「display: inline-block;」を指定するのが楽です。昔はwhite-space(nowrap)などを使って改行禁止区間を設ける対処方法とかもありましたが、それだと「どうしても改行が避けられない状況」では困ってしまいますから。
今のブラウザでも句読点や長音などを行頭には表示しないというような禁則処理はありますが、「できるだけ単語の途中では自動改行しない」という仕組みができると、もっと読みやすくなります。日本語の文章中でそうするのはあまり現実的ではありませんが、タイトルや見出しなど、短文を大きく掲載するような場合に使うと、読みやすくて便利そうです。
日本語のように単語の区切りが曖昧な言語で、単語の途中で自動改行されるのを防ぐ方法としては、昔はwhite-space
(nowrap)などを使って改行禁止区間を設ける対処方法がありました。でも、改行禁止区間を設けてしまうと、「描画領域が狭すぎて、どうしても改行が必要な場合にでも改行されず、横スクロールが発生してしまう」という問題があります。
何もかもを自分1人で書く場合にはそれでも調整可能かもしれませんが、複数人で構築している場合には、うっかり改行禁止区間を長く取り過ぎて、横スクロールを発生させてしまうケースもありそうな気がします。
そこでお勧めなのが、改行を禁止するのではなく、spanなどで囲んだ単語にdisplay: inline-block;
を指定する方法です。
displayプロパティに値inline-block
を指定すると、その領域はブロックレベル要素っぽく表示されるものの、インライン要素のように配置されます。
これはつまり、
……という配置になります。
このdisplay: inline-block;
を指定した範囲内に自動改行位置が来てしまった場合は、
……という表示になります。この(2)の存在がnowrap的な指定よりも便利です。
例えば、以下のようなHTMLを書いておきます。できるだけ改行されたくない領域をspan要素で囲んでいるだけです。後からCSSを適用するために、ここではno-wrap
というclass名を付加しています。
HTMLソース
ここでは、 <span class="no-wrap">CSS(スタイルシート)</span>を使って <span class="no-wrap">ウェブページ</span>を <span class="no-wrap">デザイン</span>する方法を解説しています。
次に、CSSソースを以下のように記述しておきます。ここでは単に、displayプロパティに値inline-block
を指定しているだけです。たったこれだけで良いのでとても手軽です。
CSSソース
.no-wrap { display: inline-block; /* インラインブロック化 */ }
上記のようにHTMLとCSSを書いておけば、CSS(スタイルシート)
、ウェブページ
、デザイン
の各単語の内側では(できるだけ)自動改行されなくなります。
しかし、絶対に自動改行されないわけではなく、横幅に対して文字量が多いなどの都合で「どうしても改行せざるを得ない状況」では、ちゃんと自動改行されるため、横スクロールが必要になったり、横方向にはみ出してしまう事態は避けられます。
inline-blockが使えないブラウザは、もはや今となっては存在しないと考えて差し支えないでしょう。
()
(前の記事) « キャプション付き画像を縦横に等間隔で並べるHTML5+CSSの書き方
前後のスタイルシート TIPS
< 旧 / 新 >
(次の記事) 重要ではないCSSファイルを後から遅れて読み込ませる方法 »
▼当サイト内外で関連しそうな記事などが自動表示されています。(たぶん)