2025 07 . 16 WED
CSSで文字を縦書きにする方法とサンプル集|writing-modeの使い方
Web開発・フロントエンド

CSSで文字を縦書きにする方法とサンプル集|writing-modeの使い方

2025.07.13

このサイトはアフィリエイト広告を利用しています。

はじめに

こんにちは。Webサイトを作っていると、特に日本語のサイトでは「縦書きの文字を使いたい」という場面に出会うことがありますよね。

私も以前、和風のサイトを制作する際に、CSSで文字を縦書きにする方法を調べたことがありました。その時は思った以上に簡単にできることを知りました。

ここでは、CSSで文字の縦書きを実現する方法を、実際に使えるサンプルコードと共にまとめてみました。よければ、ご覧ください。

CSSの縦書き基本プロパティ

CSSで文字を縦書きにするには、writing-mode プロパティが中心となります。このプロパティは、文字の書字方向を制御する重要な役割を持っています。

writing-modeの主要な値

プロパティ値効果用途
vertical-rl縦書きで右から左へ日本語の縦書き書籍スタイル
vertical-lr縦書きで左から右へモンゴル語など特殊な用途
horizontal-tb横書きで上から下へ通常の横書き(デフォルト)

基本的な縦書きテキスト

実行結果

柴犬アイコン

初めて縦書きが表示された時は「おお!」って声が出ちゃいました!思っていたより簡単にできるんですよね。

text-orientationで文字の向きを調整

縦書きにした際、英数字や記号の向きが気になることがあります。そんな時に役立つのが text-orientation プロパティです。

text-orientationの値と効果

プロパティ値効果
mixed日本語は縦、英数字は横向き(デフォルト)
uprightすべての文字を正立させる
sidewaysすべての文字を横倒しにする

文字の向きを制御した縦書き

実行結果

💪 ヒント

日本語サイトでは mixed が自然に見えることが多いですが、デザインによっては upright の方が統一感が出る場合もあります。実際のコンテンツで試してみることをおすすめします。

実用的な縦書きレイアウトサンプル

実際のWebサイトでよく使われる縦書きレイアウトのパターンをいくつかご紹介します。

見出しと本文の組み合わせ

和風サイトや文学系サイトでよく見かける、見出しと本文を組み合わせたレイアウトです。

見出しと本文の縦書きレイアウト

実行結果

柴犬アイコン

フォントファミリーに游明朝を指定すると、より和風の雰囲気が出るんです。ブラウザによって表示が変わることもあるので、フォールバックも忘れずに設定しています。

ブラウザサポートと注意点

CSSの縦書き機能は、現在ほとんどのモダンブラウザでサポートされています。ただし、古いブラウザでは表示が崩れることがあるため、いくつか注意点があります。

主要ブラウザのサポート状況

ブラウザwriting-modetext-orientation備考
Chrome✅ 全対応✅ 全対応安定動作
Firefox✅ 全対応✅ 全対応安定動作
Safari✅ 全対応⚠️ 部分対応一部制限あり
Edge✅ 全対応✅ 全対応安定動作

⚠️ 注意点

Internet Explorer では縦書きのサポートが限定的です。また、モバイルブラウザでは表示が崩れることがあるため、レスポンシブ対応時は十分なテストが必要です。

レスポンシブ対応の考慮

スマートフォンなど小さな画面では、縦書きが読みにくくなることがあります。メディアクエリを使って、適切に切り替える方法をおすすめします。

/* デスクトップでは縦書き */
.responsive-text {
writing-mode: vertical-rl;
height: 300px;
}
/* モバイルでは横書きに切り替え */
@media (max-width: 768px) {
.responsive-text {
writing-mode: horizontal-tb;
height: auto;
}
}

よくある質問

縦書きテキストが崩れて表示される場合の対処法は?

まず、コンテナの高さが十分に設定されているか確認してください。また、フォントファミリーによっては縦書きに適さないものもあるため、日本語フォントを明示的に指定することをおすすめします。

英数字が横向きになって読みにくい場合は?

text-orientation: upright; を設定すると、英数字も縦向きになります。ただし、可読性を考慮して、長い英数字は避けるか、別途スタイリングを検討してください。

縦書きテキストをコピー&ペーストした時の動作は?

ブラウザによって動作が異なりますが、多くの場合、通常の横書きテキストとしてコピーされます。これはCSSの表示効果であり、テキスト内容自体は変わらないためです。

まとめ

CSSで文字を縦書きにする方法について、サンプルコードと共にご紹介しました。

writing-mode プロパティを使えば、比較的簡単に縦書きテキストを実現できます。日本語サイトでは特に、和風のデザインや文学的な表現に効果的だと思います。

ただし、レスポンシブ対応やブラウザサポートには注意が必要です。実際に導入する際は、ターゲットとするユーザー環境でしっかりとテストを行うことをおすすめします。

この記事が、CSS縦書きの実装の参考になれば嬉しいです。

公式リソース(Official Resources)

著者アイコン
コッチ フロントエンドエンジニア

フロントエンドエンジニア歴10年。コロナ禍を機にフル在宅ワークへ移行。Web開発の知見を活かし、AI活用法や仕事が捗るガジェットについて発信しています。柴犬が好きです。