本記事では、通常横書きで表示されるテキストをCSSを使って縦書きにする方法について解説しています。
- HTMLとCSSの基本が体系的に学べる
- Webデザインの基本が学べる
- 1つのWebサイトを作りながら学べる
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
テキストを縦書きにする方法
テキストを縦書きにする方法はとても簡単で、writing-modeプロパティを使います。このwriting-modeプロパティとは、テキストのレイアウトを横書きにするか縦書きにするか、フロー方向を左向きにするか右向きにするかを決定します。
writing-modeプロパティに設定できる値は以下のとおりです。
値 | 説明 |
---|---|
horizontal-tb | 左から右へ水平 |
vertical-rl | 上から下へ垂直 次の行は、前の行の右に配置 |
vertical-lr | 上から下へ垂直 次の行は、前の行の左に配置 |
sideways-rl | 垂直方向に並べられる書体を含むすべての文字を右へ横倒し |
vertical-rl | 上から下へ垂直 垂直方向に並べられる書体を含むすべての文字を左へ横倒し |
通常の縦書きの設定をしたいので、値は「vertical-lr」を使用します。
それでは、実際に縦書きのテキストを作成していきます。
<div>
<p>
名前:田中 太郎<br>
年齢:25歳<br>
趣味:映画鑑賞<br>
職業:会社員
</p>
</div>
div{
background:#000;
color:#fff;
padding:50px;
}
p{
writing-mode: vertical-rl;
}
表示を確認してみると、縦書きになっていることが確認できましたが英数字が横になったままです。英数字も縦書きにしたい場合は「text-orientation」プロパティ使います。text-orientationプロパティは使える場所が限られており、writing-modeがhorizontal-tb以外の場合でのみ効果があります。
text-orientationプロパティに設定できる値は以下のとおりです。
値 | 説明 |
---|---|
mixed | 横書き用の文字を右に90°回転させ、縦書き用の文字は自然に配置 |
upright | 横書き用の文字を、縦書き用の字形と同様に自然に(正立で)配置 |
sideways | 全行を横書きで書いて90°回転したように配置 |
横書きになっている英数字のみを縦書きと同じように表示させたいので、値は「upright」を使用します。
p{
text-orientation:upright;
}
表示を確認してみると、英数字が縦書きになっていることが確認できました。
テキストの位置を決める
水平方向
初期状態では、テキストが左側に寄っているためこれを中央寄せや右寄せしたい場合はどのように設定するのが正解でしょうか?通常であれば、text-alignプロパティを使いますが縦書きの状態では縦横の位置が逆転しているため、縦方向の位置を指定することになってしまいます。
このような場合は、text-alignプロパティではなくvertical-alignプロパティを使います。
値 | 説明 |
---|---|
top | 右寄せ |
middle | 中央寄せ |
bottom | 左寄せ |
垂直方向
水平方向の位置移動で、縦書きの状態では縦横の位置が逆転しているとお話ししました。つまり、text-alignプロパティが水平方向ではなく垂直方向の位置を決めるプロパティになります。
値 | 説明 |
---|---|
left | 上寄せ |
center | 中央寄せ |
right | 下寄せ |