CSS テキストの向きの変更とオーバーフローを理解しよう

CSS オーバーフローを理解しよう CSS
スポンサーリンク

今回は、「テキストの向きの変更」と「オーバーフロー」についてご紹介させて頂きます。

どちらもサイトのレイアウトと密接に関係する項目ですので、しっかりと基本を理解していきましょう。

スポンサーリンク

書き込みモード

テキストの向きを変える

テキストを縦方向、または横方向にするには以下のように記述します。

  writing-mode: vertical-lr;

値には以下の3つがあります。

  • horizontal-tb:テキストは水平、上から下へ
  • vertical-rl:テキストは垂直、右から左へ
  • vertical-lr:テキストは垂直、左から右へ
HTML
<h1>初めてのCSS</h1>

CSS
h1 {
  writing-mode: vertical-lr;
}
テキストを垂直方向に変更します。

inline-size と block-size

縦書きモードを使用する時に気を付けたいのが、サイズ指定がある時です。

HTML
        <div class="outbox">
          <div class="inline outline">
            <h2>テキストの向き</h2>
            <p>CSSを理解するのは大変です。</p>
            <p>沢山の<span>プロパティ</span>を覚えていかなくてはなりません。</p>
          </div>
          <div class="sample_text outline">
            <h2>CSS Direction</h2>
            <p>
            Lorem ipsum dolor sit amet consectetur adipisicing elit. 
            </p>
            <p>
            distinctio cupiditate <span class="block"> rerum! </span>
            </p>
            <p>
            Facere tenetur iusto explicabo ipsa
            eaque! Iste, hic molestiae! Temporibus dicta nemo excepturi aperiam
            quis, neque culpa!
            </p>
          </div>
        </div>
CSS
.outbox {
  border: 1px solid red;
  display: inline-flex;
}
.inline {
  writing-mode: horizontal-tb;
  border: 1px solid purple;
}
.sample_text {
  writing-mode: horizontal-tb;
  border: 1px solid purple;
}
.outline {
  width: 150px;
  margin: 10px;
}
テキストを通常の方法で表示させます。

通常このように表示されます。

「.sample_text」の「writing-mode: horizontal-tb;」を「writing-mode: vertical-lr;」に変更してみます。

CSS
.sample_text {
  writing-mode: vertical-rl;
テキストを横向きにするとオーバーフローが発生しています。

「.sample_text」のテキストは縦向きになりましたが、横幅が150pxに指定されているため、テキストがボックスからはみ出してしまっています。(オーバーフローしてしまっています。)

テキストがしっかりとボックス内に収まるようにするには、「inline-size」プロパティを使用します。

CSS
.sample_text {
  writing-mode: vertical-rl;
  border: 1px solid purple;
}
.outline {
  inline-size: 150px;
  margin: 10px;
}
inline-sizeを指定してオーバーフローを解消します。

テキストがしっかりとボックス内に収まりました。

inline-size:水平方向の場合は幅、垂直方向の場合は高さ
block-size:水平方向の場合は高さ、垂直方向の場合は幅

ここでは高さと幅、「height」と「width」に変わるプロパティを見てきましたが、margin、padding、borderを使用するときも対応する書き方が用意されています。

膨大な書き方がありますので、詳しくは以下のサイトをご参照ください。

オーバーフロー

オーバーフローとは

ボックスに高さと幅のサイズ指定をしたとき、テキストが想定よりも多くなってしまった場合などに起こるのが「overflow」になります。

CSS
.sample_text {
  border: 1px solid purple;
  width: 200px;
  height: 150px;
ボックスにサイズを指定するとオーバーフローが起こります。

パープルの枠線に、幅200px、高さ150pxと指定したので、テキストが下まではみ出してしまっています。

この状態を解消するために、幾つかのプロパティを設定することが出来ます。

overflow:;

hidden

CSS
.sample_text {
  border: 1px solid purple;
  width: 200px;
  height: 150px;
  overflow: hidden;
オーバーフローをhiddenを使って解消します。

CSSに「 overflow: hidden;」を追加してみました。

値に「hidden」を記述すると文字通り、はみ出していた部分が消えています。

scroll

CSS
.sample_text {
  border: 1px solid purple;
  width: 200px;
  height: 150px;
  overflow: scroll;
オーバーフローをscrollを使って解消します。

値に「scroll」を記述すると、スクロールバーが表示されました。

CSS
.sample_text {
  border: 1px solid purple;
  width: 200px;
  height: 150px;
  overflow-y: scroll;
縦のスクロールのみ指定します。

「overflow」に「y」を追加するとスクロールバーが縦軸だけになります。

横軸だけにする場合は、「x」を追加します。

overflow: auto;」を使用すると、テキストが収まりきらないときだけスクロールが表示されます。

スポンサーリンク

あとがき

ここでご紹介したテキストの向きの指定や、オーバーフローの概念は分かりやすかったのではないでしょうか。

しかし実際にサイトを作成していくと意外とつまずいたり、うまく表示されない原因となることがあるので、基本をしっかりと理解しておくようにしてください。

今回も最後までお読み頂きありがとうございました。

タイトルとURLをコピーしました