text-spacingが待ち遠しい
公開:
更新:
日本語文中の英数で日本語の文字との間に半角スペースを入れるか入れないかという話があります。検索すると色々議論されていたりして面白いです。
このブログでは場所によって半角スペースを入れたり入れなかったりしていますが(2020年1月追記:現在は入れていません)、『日本語組版処理の要件』に合わせてユーザーエージェントがいい感じに処理してほしいなーとか思います。
そこで「それCSSでできるよ」と言える(ようになるかもしれない)プロパティを紹介してみます。 これがまさに日英数が混在する文章で、英語や数字と日本語の間に4分の1スペースを自動で追加したり、全角括弧で生じる大きなスペースをトリムしたりできるプロパティです。 このプロパティは「CSS Text Module Level 3」にあったんですが、2012年1月19日版で削除され、「CSS Text Level 4」に移されました。 2013年9月現在、このプロパティを実装しているブラウザは残念ながらありません。 構文は次のようになっています。 「いま使えないんじゃーねー」という方もいるかと思いますが、英数と日本語の間のスペースを調整するだけなら、古くからInternet Explorerが 仕様はMSDNの「-ms-text-autospace property (Internet Explorer)」をどうぞ。 デモページを作ってみたのでInternet Explorerで見てみてください。 ちゃんと表示されていれば次のようになります。 半角スペースを手動入力することによって、音声読み上げソフトの読み上げがおかしくなる可能性も考えると、こうやって見た目だけ調整してくれるのは本当に素晴らしいですね。text-spacing
text-spacing
は元々text-trim
とtext-autospace
という別々のプロパティを統合したものです。これは2011年9月1日版のチェンジログに載っています。
統合に至る経緯の簡単な説明も見ておくと面白いかもしれません。
ですが、予習としてプロパティの値を簡単にまとめてみます。
詳しいことは仕様を見たほうが確実です(括弧はどの文字のことなのか、とか……)。normal | none |
[ trim-start | space-start ] ||
[ trim-end | space-end | allow-end ] ||
[ trim-adjacent | space-adjacent ] ||
no-compress || ideograph-alpha || ideograph-numeric || punctuation
normal
, none
の場合は、そのキーワードのみを指定できます。それ以外の場合は次のものを順不同で少なくとも1つは指定。trim-start
とspace-start
のどれか1つtrim-end
とspace-end
とallow-end
のどれか1つtrim-adjacent
とspace-adjacent
のどれか1つno-compress
ideograph-alpha
ideograph-numeric
punctuation
normal
space-start allow-end trim-adjacent
と同等。none
text-spacing
による見た目を全て無効にする。全角文字は全角幅グリフとしてセットされる。space-start
trim-start
space-end
trim-end
allow-end
space-adjacent
trim-adjacent
ideograph-alpha
ideograph-numeric
punctuation
no-compress
text-autospace
を実装していますので、text-autospace
についても。text-autospace
-ms-text-autospace
で指定します。
ただ、元はIEの独自実装だか先行実装だかで、IE 7以下では-ms-
なしにする必要があります。
W3Cにあるものだと1999年の「International Layout in CSS」にあるものが一番古いんでしょうか。none | ideograph-alpha || ideograph-numeric || ideograph-parenthesis || ideograph-space
text-spacing
の元なので、指定できる値は似ています。none
ideograph-alpha
ideograph-numeric
ideograph-parenthesis
ideograph-space
text-spacing
がLevel 4になったので好きに使えるようになるのはまだまだ先な気がしますが、他にもhanging-punctuation
やtext-justify
などを使ってウェブページ上でも好みの文字組みができるようになることを考えると今から楽しみになりませんか?
参考リンク:
-ms-text-autospace;文字間の間隔制御 - CSS3ウェブブラウザ実装メモ - 血統の森 web実験小屋