今回は、「テキストの向きの変更」と「オーバーフロー」についてご紹介させて頂きます。
どちらもサイトのレイアウトと密接に関係する項目ですので、しっかりと基本を理解していきましょう。
書き込みモード
テキストの向きを変える
テキストを縦方向、または横方向にするには以下のように記述します。
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:水平方向の場合は幅、垂直方向の場合は高さ
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;

CSSに「 overflow: hidden;」を追加してみました。
値に「hidden」を記述すると文字通り、はみ出していた部分が消えています。
scroll
CSS
.sample_text {
border: 1px solid purple;
width: 200px;
height: 150px;
overflow: scroll;

値に「scroll」を記述すると、スクロールバーが表示されました。
CSS
.sample_text {
border: 1px solid purple;
width: 200px;
height: 150px;
overflow-y: scroll;

「overflow」に「y」を追加するとスクロールバーが縦軸だけになります。
横軸だけにする場合は、「x」を追加します。
「overflow: auto;」を使用すると、テキストが収まりきらないときだけスクロールが表示されます。
あとがき
ここでご紹介したテキストの向きの指定や、オーバーフローの概念は分かりやすかったのではないでしょうか。
しかし実際にサイトを作成していくと意外とつまずいたり、うまく表示されない原因となることがあるので、基本をしっかりと理解しておくようにしてください。
今回も最後までお読み頂きありがとうございました。



