CSSだけで縦書きテキストを実装してみた

コーディング時にテキストを縦書きで見せたい箇所があったのですが、どうせならこれもCSSだけで実装できないかと探してみました。

JavaScriptで実装した事例は過去にもあったのですが、やはりもっとお手軽に実装できるとありがたいので。

【サンプル】

縦書きCSS

CSSだけでテキスト縦書きを実装すると
こんな感じになります。
数字だって123,こんな感じに123.
英字だってAtCreate,こんな感じですAtCreate.
「括弧」や[半角カッコ]はこんな感じです。
!?#%&@$!?#%@$

【HTML】









<div class="sample01">
だいたい何でも入ります
</div>








【CSS】

-webkit-writing-mode: vertical-rl;
-ms-writing-mode: tb-rl;
writing-mode: vertical-rl;

 

今回はCSSの「writing-mode」を使用しての実装になります。
テキストの水平・垂直、ブロックやインライン要素の流れる向きを指定できます。
詳細な設定方法はこちらをご確認ください

上記のサンプルは、シンプルにh2とpだけ使用しています。
半角文字の場合は横になってしまうみたいですが、全角文字なら大丈夫そうです。

こちらのブログでとても丁寧に解説されておりますので、詳しくはそちらもご覧下さい。
そこで画像で解説されていたタグを、いくつかブラウザ上で再現してみました。
是非、実際に様々なブラウザで確認してみてください。

【色々なタグでサンプル】

いろんなタグを試してみましょう

text-align:left

text-align:right

ルビタグ使つかったことないんですよね…(3点リーダ)

ストロングタグはこんな感じです。

スモールタグですね。

横着とか言わない打ち消し線か、忘れてた…

1エスユーピー2エスユービーです。

  • ulリスト
  • ulリスト
  • ulリスト
  1. olリスト
  2. olリスト
  3. olリスト
テーブル見出し テーブル見出し
テーブル中 テーブル中


 

text-alignは、左寄せだと上に、右寄せだと下になるようです。
通常のコンテンツを右に90°回転させたみたいなイメージですね。

サイト全体を縦書きにするなら、もっと色々なタグを、異なるブラウザで検証する必要がありそうですが、とりあえずform系タグには効いてくれないようです。
おっと、Firefoxでなら効いているみたいですよ
form系はブラウザごとに大きく異なり、不安定ですね。

ですが要所要所での使用なら、やはりCSSだけで実装してしまった方が良さそうですね。

【参照させていただいたサイト】

https://qiita.com/RinoTsuka/items/3e3eaaba8cddb6ff08e9

 

カテゴリーCSS