1. このページの目的
CSS Writing Modes Level 3 の仕様を使って、縦書きしてみる。
2. 仕様
writing-mode プロパティ
ブロックのフロー方向を指定する。
日本語であれば、horizontal-tb
と vertical-lr
しか必要ないはず。
値 | 説明 |
---|---|
horizontal-tb |
|
vertical-lr |
|
vertical-rl |
|
text-orientation プロパティ
行内のテキストの向きを定義する。
値 | 説明 |
---|---|
mixed |
|
upright |
|
sideways |
|
sideways-right |
|
use-glyph-orientation |
|
日本語における、プロパティの現実的な組み合わせ
記述方式 | writing-mode |
text-orientation |
---|---|---|
横書き | horizontal-tb (既定値) |
mixed (既定値) |
縦書き | vertical-rl |
mixed (英数字は横向きになる)or upright (英数字も縦向きになる) |
writing-mode: vertical-rl
且つtext-orientation: mixed
の場合、リンクの下線が右側につく。しかしこのとき、英数字は横向きになっているため、文字の上に線がつくことになってしまう。これを避けるには、個別にtext-decoration: overline
をあてる必要がある。
関連するその他のプロパティ
2. デモ
コード
.demo {
writing-mode: vertical-rl; /* horizontal-tb | vertical-rl | vertical-lr */
text-orientation: upright; /* mixed | upright | sideways */
height: 500px;
line-height: 1.3em;
text-indent: 1em;
}
<section class="demo">
<p>...</p>
<p>...</p>
</section>
writing-mode
:
text-orientation
:
スタイルシート (英語: style sheet) とは、構造化文書などにおける表示形式を制御するしくみ。見栄えと構造を分離するという目的で提唱された。HTML、XML、SGMLといったマークアップ文書や、オフィスソフトにおいて広く使用されている。
Web上で広く使われているHTML文書にスタイルシートを適用する場合には、一般的にCSSが利用される。CSSが圧倒的に普及しているので、単にスタイルシートといえばCSSを指すことがある。
3. メモ
- 縦書きの場合に、特定の行間を広くしようと思うのであれば、
margin-bottom
ではなくmargin-left
を使う。 - 縦書きの仕様とは関係ないが、ルビと対象とする単語との距離が空きぎみになっているのが気になる。
- 縦書きの日本語の文章って、英数字はどちら向きが普通?