
仕様書の規範的なバージョンはW3Cのサイトにある英語版である。翻訳された文書は翻訳からの誤りが含まれているかもしれない。
Copyright ©2001 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
この文書は、CSSのテキストのフォーマット処理のプロパティセットを提供する。CSSの2[CSS2]ですでに存在するものに加えて、多くの新しいプロパティが、国際的なコンテキスト(東アジア言語や双方向言語がほとんど)において、基礎的に必要とするものを扱っている。しかしながら、この用法は、それらの実例によって制限されない。
この文書はスタイルアクティビティの一部である、CSS策定団体の策定中の草案である。これは、CSSのレベル3に含まれている特徴に対する提案を含む。
この文書はW3Cの国際化の活動と、スタイルアクティビティの協力によって作り出されたものである。また、XSLの策定団体(会員専用)の会員によって製作された、広範な寄稿も含んでいる。最後に、提案の中には、スカラの可能なベクタグラフィックス(SVG)の1.0の仕様で実装されたものもある。結局は、どのようなプロパティや仕様が、CSS自体に引用されるかを反映するために、この文書は複製されてきた。
この草案の旧題は"国際的なレイアウト"であった。
フィードバックは大変ありがたい。コメントは編者に直接送ることもできるが、メーリングリストwww-style@w3.org(使用説明書を参照)も開かれていて、本書および、スタイルの範囲のその他の草案の話し合いに対して好まれている。
この策定中の草案は、いつでも、ほかの文書によって更新されたり、置き換えられたり、時代遅れになったりするかもしれない。W3Cの策定中の草案を参考書の資料として使用したり、あるいは、"策定進行中"ではないものとして引用するのは不適当である。この公開は、W3Cの会員の資格やCSS&FP策定団体(会員専用)による保証は含まれない。
この草案の最新版を見つけるには、上方の"最新版"のリンクをたどるか、技術報告の一覧表をたずねてください。
このCSSのモジュールは以下の他のCSSのモジュールに依存している。
以下の他のCSS3のモジュールに、標準を立てるものではない(知識を与えるものである)関連がある。
CSS1とCSS2の両方において、テキストのフォーマット処理は、たとえば、テキストの装飾、テキストの配置や、文字のスペース処理のような、単純な効果に限られていた。しかしながら、国際的な印刷の体裁は、特別なワークアラウンドやグラフィックスを使わなければ成しえないフォーマット処理の種類を含んでいる。
既存のテキストに関連したプロパティとともに、この文書は、そのようなフォーマット処理を表現するために、いくらかの新しいCSSのプロパティを提供する。たとえば、この提案が含む特徴の中に、縦書きのテキストや、レイアウトをするときの升目といった、東アジアの印刷の体裁のための、2つの最も重要な特徴がある。
いくつかのイラストレーションに、以下に説明文が用意されている。
-テキストの連続の中でn番目の文字である全角の標識(たとえば、漢字)、
-テキストの連続の中でn番目の標識である半角の標識(たとえばローマ字)、
-テキストの連続の中でn番目の標識であるつながった標識(たとえばアラビア文字)
東アジア言語の印刷の体裁における、多くの印刷上のプロパティは、全角の文字か半角かのどちらか一方として、一般的な方法で描写しているという事実に依存している。ユニコードの標準によって描写されるすべての文字は、幅のプロパティで分類することができる。これは、ユニコードのウェブサイトから入手できるユニコードの技術報告(TR#11)に含まれている。
図表において、上に述べた記号がとる方向は、UAで描写されるときに、表現する標識がとると意図される方向と一致する。図表におけるそれらの文字の間の空白は、故意に点を作るように変えられなければ、たいていは記号である。
この項は、左から右へ(たとえば、ローマ字)、右から左へ(たとえば、ヘブライ文字やアラビア文字)、双方向(たとえば、ローマ字をアラビア文字と混在させたもの)や、縦書き(たとえば、アジア文字)のような、さまざまな国際的な文書の方向を含む、CSSでサポートされているテキストのレイアウトの特徴を説明する。
'writing-mode'プロパティは、行中の進行や、ブロックの進行とも呼ばれる行から行への進行を決定する。たとえば、ローマ字は、一般的に左から右へ、また上から下へと書かれる。標識の方向は、基本のテキストの進行方向と関係がある、描写される文字の視覚的な形を決定する。
行中において、現在のテキストの位置の調整は、テキストの進行方向、単に描写される標識の計量、フォントにおけるカーニングの表、現在のスペース処理のプロパティのような、さまざまな属性の現在の値と関係がある、現在の標識の方向に基礎づけられている。
'writing-mode'や、標識の方向の値で、テキストの適切な方向性が、アルゴリズムによって決定されるだろうときに、双方向性は、多くのテキストのレイアウトにおいて、別の水準の複雑さをもたらす。ユニコードの標準([UNICODE]、セクション3.12)は、組み込むための明示的なコントロールと同様に、文字のプロパティに基礎付けられた、明示的な部分からなる、そのようなアルゴリズムを定義し、上書きする。'writing-mode'と'unicode-bidi'プロパティの組み合わせを使って、内容の文字の本来の双方向性を上書きすることも可能である。
CSS3は適切なテキストの双方向の描写を成し遂げるのにこのアルゴリズムに頼る。しかしながら、文字の描写は、標識の方向プロパティの、特定の値に対してのみ起こる。厳密な制約に対するその説明を参照してください。
CSS2は、行中の進行のみを決定する、'writing-mode'プロパティのサブセットである、'direction'プロパティを明示した。'direction'プロパティは行から行への進行の変更が望まれるときに、いまだに使われている。
HTMLの4.0の仕様書([HTML40]、セクション8.2)は、HTMLの要素に対する双方向性の挙動を定義している。それゆえに、仕様に適合しているHTMLのユーザエージェントは、著作者と使用者のスタイルシートにおいて、'direction'と'unicode-bidi'プロパティを無視してもよい。[HTML40]で明示された、双方向の挙動を成し遂げるスタイルシートの規則は、見本のスタイルシートで与えられる。HTMLの4.0の仕様は、双方向性の問題に関する情報もより多く含んでいる。HTMLの4.0は、'writing-mode'プロパティによって説明されるもっと一般的な場合を含んでいない。
最後に、このモジュールは、(一般的な西洋のテキストのレイアウトにおいて、'before'、'after'、'start'と'end'の位置とそれぞれ一致する)'top'、'bottom'、'left'と'right'に関して、絶対的な位置から独立して、テキストの進行方向に関するボックスの四隅を明示する'before'、'after'、'start'と'end'の表記を表記広範囲にわたって用いている。この表記は、同じ目的のために、[XSL]においても広範囲にわたって用いられた。
'writing-mode'プロパティは、基本のテキストの進行方向を、左から右へ、右から左へ、あるいは上から下へさせたいかを明示する。(基本のテキストの進行方向が、左から右か右から左のどちらかであったときでも、ユニコード[UNICODE]の双方向のアルゴリズムのために、あるいにこのプロパティや'direction'と'unicode-bidi'の結果上書きする明示的なテキストの進行方向のために、与えられた要素内の内容の一部または全部が、反対の方向に進行するかもしれないことに注意。このプロパティは、要素に対して、'direction'プロパティを変更したりもする。双方向のテキストに関するそれ以上のことには、組み込みと上書きについての項を参照。
| 値: | lr-tb | rl-tb | tb-rl | tb-lr | bt-rl | bt-lr | lr | rl | tb | inherit |
| 初期値: | lr-tb |
| 適用先: | すべての要素 |
| 継承: | あり |
| 百分率: | 適用不可 |
| 媒体: | 視覚 |
writing-modeのプロパティによって設定される、基本のテキストの進行方向と、行の進行方向の組み合わせは、流れの方向にも関連している。そのようなコンテキストにおいて、lr-tb、lr、rl-tbやrlという値は、横書きの流れの方向に一致し、その他のもの(tb-rl、tb、tb-lr、bt-rl、bt-lr)は、縦書きの流れの方向に一致する。
横書きの流れの方向に対して、上下の余白は崩されてしまうことがある。縦書きの流れの方向に対して、左右の余白は崩されてしまうことがある。崩れてしまう余白の詳細は、CSS3のボックスのモジュール[公開間近]における、崩れてしまう余白を参照。
このプロパティは表の行のレイアウトの方向、基本のテキストの進行方向と同じように方向付けられるあふれ(たとえば、writing-mode:lr-tbに対しては、ブロックの要素が水平面の右にあふれるだろう)、テキストの配置、そして、'text-align: justify'の場合における、ブロックにおいて完結していない最後の行の位置をも明示する。
以下の条件の一つまたは両方が満たされたときのみ、'writing-mode'のプロパティが、inline-levelの要素に何らかの影響ももたらす。
その親と違ったwriting-modeの値を持つ、inline-levelの要素は、行中のブロックの要素になる。
編者注:CSS3のボックスのモジュールにおける、'width'と'height'のプロパティの説明は、縦書きの流れの方向のためのアルゴリズムを、より詳細に説明するために更新される必要がある。たとえば、縦書きの流れの方向において、高さは、親の、レイアウトの高さ(引く余白やボーダー)の最小限度や、要素の最適条件の高さより大きくなりうるだろうと予期される。要素の最適条件の高さは、一般的に、10文字の表意文字の'進行の幅'の長さだとして、決定される。この仕組みは、'無限に'長い縦書きの行や、一行だけの縦書きの流れを避けるのに必要とされる。特に、ボックスのモジュールのセクションの7.2は、横書きの流れの要素に含まれる、縦書きの流れの要素に対する、'auto'の場合について議論すべきである。
これが、横書きの流れ(writing-mode:lr-tb)の図表である。
これが、東アジアで使われる縦書きの流れ(writing-mode:tb-lr)のための図表である。
そして最後に、ウイグルとモンゴル語で使われる別の流れ(writing-mode:tb-lr)のための図表である。
東アジアの文書において、次のように、それらの文字列が現れるテキストの行の流れの形態にかかわらず、年の数字のような、あるラテン語に基礎付けられた文字列を、常に横書きのレイアウトの流れの中に、表示するのがよく好まれる:
この効果は"縦中横"として知られている。これを成し遂げるためには、次のように、ラテン語の文字列を、横書きの流れの方向を持っている、SPANの要素のなかに囲むべきである。
<span STYLE="writing-mode: lr-tb">1996</span>
これは、より初めのころに説明されたものであるが、行中の要素の流れの変化を適用するものである。改行は、テキストのそのような流れのために、通常無効にされる。CSSの'white-space: nowrap'の設定を使って、これを成し遂げることができる。
| 値: | ltr | rtl | inherit |
| 初期値: | ltr |
| 適用先: | すべての要素だが本文を見よ。 |
| 継承: | あり |
| 百分率: | 適用不可 |
| 媒体: | 視覚 |
このプロパティに対する値は以下の意味を持っている。
このプロパティは、ユニコードの双方向のアルゴリズムに対して、テキストの進行方向と組み込みと上書きの方向('unicode-bidi'を参照)という、行の方向の構成要素の方向を明示する。値'のltr'と'rtl'は、行の方向に'相対的に'解釈される。加えて、表の行のレイアウトの方向、基本のテキストの進行方向と同じように方向付けられるあふれの方向(たとえば、writing-mode: lr-tbに対して、ブロックの要素が水平面の右にあふれるだろう)、テキストの配置、'text-align: justify'の場合において、ブロックの中の完結していない最後の行の位置を明示する。 'direction'プロパティが、inline-levelの要素に何らかの影響をもたらすのに、'unicode-bidi'のプロパティの値は、'embed'か'bidi-override'でなければならず、要素の中の文字の標識の方向が、縦書きのレイアウトにおいて90/-90度か、横書きのレイアウトにおいて0/180度でなければならない。
block-levelのブロックの水準の要素に対する'direction'のプロパティを用いるのは、'writing-mode'のプロパティが取って代わるため、CSS3においては反対されている
注意。'writing-mode'と'direction'のプロパティは、表の行の要素に対して明示されているとき、行が文書のツリーにおいて存在しないため、行におけるセルに継承されない。したがって、[HTML40]のセクションの11.3.2.1.に説明されているCSSは"dir"の属性の継承の規則を容易に保持することはできない。
注意。'writing-mode'と'direction'のプロパティは、互いに相互作用する。そういうものとして、'writing-mode'は、'direction'の値を置き換える。同様に、'writing-mode'の後の'direction'の修正は、実際上、'writing-mode'の値を、反対の行中の進行に変える。たとえば、'writing-mode:lr-tb'のある要素に適用される'direction:rtl'は、実際上、'writing-mode:rl-tb'にする。これは、二つのプロパティの混在した使用法が反対されてるか、少なくとも大いに慎重に使われるべきである、主な理由のひとつである。
注意。これらのプロパティは背景の画像の位置に影響しない。
場合によっては、基本のテキストの進行方向に関連した、文字の連続の方向を変えることが必要とされることがある。必要とするものは、時々の半角のローマ字のテキストが横書きに、ほかのときは縦書きに表示される、東アジアの文書の縦書きのレイアウトに、個々に適用できるものである。
二つのプロパティは、基本のテキストの進行方向に関連した、標識の方向を制御する。'glyph-orientation-vertical'の制御する。'glyph-orientation-vertical'は、基本のテキストの進行方向が縦書きであるときに、標識の方向を制御する。'glyph-orientation-horizontal'は、テキストの進行方向が横書きであるときに、標識の方向を制御する。以下の理由のため縦書きと横書きの間を区別することが必要である。
| 値: | <angle> | auto | inherit |
| 初期値: | auto |
| 適用先: | すべての要素 |
| 継承: | あり |
| 百分率: | 適用不可 |
| 媒体: | 視覚 |
注意。autoの値は、普通ヨーロッパの文字と日本語を混在する慣用で期待された結果を生成する。しかしながら、その厳密なアルゴリズムは、多くの要因の間の複雑な相互関係に基礎付けられており、したがって異なるアルゴリズムが、異なるプロセスの環境で用いられるかもしれない。厳密な制御のためには、明白な<angle>の値を明示してください。
このプロパティは、'writing-mode'のプロパティによって決定される、行中の進行に関連した、標識の方向を明示する。このプロパティは、縦書きのwriting-modeで書かれたテキストにしか適用されない。適合したユーザエージェントは、順々に高度になっていく水準のサポートにおいて、以下のことをしてもよい。
このプロパティの値は、作用される標識に対して生成される、標識の領域の、配置と高さの両方に影響する。標識の標準の方向が、dominant-baselineに平行となるようになされれば、回転された標識の縦のalignment-pointが、その標識に適切なalignment-baselineを基準にして配置される。回転される標識が配置される基線は、標識の属しているスクリプトに対する"alignment-baseline"によって見分けられる垂直の基線である。標識の領域は、標識に対する高さのフォントの特性によって決定される。
横の配置の点、基線、(標識の進行の幅として計算される)高さは、もし、標識の標準の方向がdominant-baselineに平行であれば、使用される。
下の図表は、'glyph-orientation-vertical'の異なる使用を説明する。左の図表は、ローマ字に対する'glyph-orientation-vertical'が、autoか"90deg"であるときに、半角のローマ字と全角の表意文字を混在させた結果を示す。右の図表は、ローマ字が、"0deg"の'glyph-orientation-vertical'を持つように明示されているときに、半角のローマ字と全角の表意文字を混在させた結果を示す。
双方向のアルゴリズムと'glyph-orientation-vertical'プロパティには、以下の相互作用がある。
| 値: | <angle> | inherit |
| 初期値: | 0deg |
| 適用先: | すべてのinline-levelの要素 |
| 継承: | あり |
| 百分率: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、'writing-mode'のプロパティによって決定される、行中の進行方向に関連した、標識の方向を明示する。このプロパティは、横書きのwriting-modeで書かれたテキストにしか適用されない。適合したユーザエージェントは、順々に高度になっていく水準のサポートにおいて、以下のことをしてもよい。
このプロパティの値は、作用される標識に対して生成される、標識の領域の、配置と幅の両方に影響する。標識の標準の方向が、dominant-baselineに平行となるようになされれば、回転された標識の縦のalignment-pointが、その標識に適切なalignment-baselineを基準にして配置される。回転される標識が配置される基線は、標識の属しているスクリプトに対する"alignment-baseline"によって見分けられる水平の基線である。標識の領域は、標識に対する幅のフォントの特性によって決定される。
横の配置の点、基線、幅は、もし、標識の標準の方向がdominant-baselineに平行であれば、使用される。
| 値: | normal | embed | bidi-override | inherit |
| 初期値: | normal |
| 適用先: | すべての要素だが本文を見よ |
| 継承: | なし |
| 百分率: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、新しい組み込みの段階や、方向の上書きをできるようにすることによって、ユニコードの双方向のアルゴリズムの、さらに進んだ制御をできるようにする。このプロパティに対する値には、以下のような意味がある。
それぞれのbolock-levelの要素における文字の最終の整形は、双方向の制御のコードを上に説明したように加え、mark-upを取り去り、そして、スタイル処理がなされたテキストと同じline-breaksを生成するプレーンテキストに対して、結果となる文字列を、ユニコードの双方向のアルゴリズムの実行に通していたのと同じである。この経過において、'unicode-bidi'のプロパティは、要素に対して明示された'direction'において、強調した文字として扱われる場合の'normal'よりほかの値を持っていれば、画像のような、テキストでないエンティティは、はっきりしない文字として扱われる。
注意。一定の方向(完全に左から右への方向か、完全に右から左への方向であるかのどちらか)である行中の要素を流すことができるようにするために、より多くの行中のボックス(匿名の行中のボックスを含む)が生成しなければならないかもしれず、行中のボックスの中には、ふるい落とされ、そして流す前に最整形されなければならないものもあるかもしれない。
ユニコードのアルゴリズムには、組み込み処理の61の段階の制限があるから、ふさわしくなければ、'normal'よりほかの値で'unicode-bidi'を使わないように注意すべきである。特に、'inherit'の値は、非常に用心して使われるべきである。しかしながら、概して、ブロックのように表示されるように意図された要素に対しては、'unicode-bidi: embed'の設定は、表示が行中に変更される場合には、要素をともに保つために好まれる(下の例を参照)。
以下の例は、双方向のテキストのある、XMLの文書を示す。次に重要な設計の原理を説明する。DTDの設計者は、本来の言語(要素や属性)と付属のスタイルシートの両方で、双方向を考慮に入れるべきである。双方向の規則は、ほかのスタイルシートで上書きされず、その結果、文書の言語やDTDの、双方向の挙動が維持されるべきである。
例:
以下の例において、小文字は本質的に左から右への方向の文字を表し、大文字は本質的に右から左への方向の文字を表す。
<HEBREW> <PAR>HEBREW1 HEBREW2 english3 HEBREW4 HEBREW5</PAR> <PAR>HEBREW6 <EMPH>HEBREW7</EMPH> HEBREW8</PAR> </HEBREW> <ENGLISH> <PAR>english9 english10 english11 HEBREW12 HEBREW13</PAR> <PAR>english14 english15 english16</PAR> <PAR>english17 <HE-QUO>HEBREW18 english19 HEBREW20</HE-QUO></PAR> </ENGLISH>
これはXMLであるから、スタイルシートは書くための方向を設定する責任がある。これがスタイルシートである。
/* Rules for bidi */
HEBREW, HE-QUO {direction: rtl; unicode-bidi: embed}
ENGLISH {direction: ltr; unicode-bidi: embed}
/* Rules for presentation */
HEBREW, ENGLISH, PAR {display: block}
EMPH {font-weight: bold} HEBREWの要素は、右から左への基礎の方向であるブロックである。PARは、その親から基本の方向を継承するブロックである。したがって、最初の二つのPARは、右上から始まり、最後の三つは左上から始まる。どうか、HEBREWとENGLISHは、明示のためだけに要素の名前として選択され、概して、要素の名前は、言語への参照なしで、伝えるべきであることを注意してください。
EMTHの要素はinline-levelであり、'unicode-bidi'に対するその値は、'normal'(初期値)であるから、テキストの整形処理には何の影響もしない。HE-QUOの要素は、これに反して、組み込みを生成する。
このテキストのフォーマット処理は、もし行の長さが長ければ、このように見えるだろう。
5WERBEH 4WERBEH english3 2WERBEH 1WERBEH
8WERBEH 7WERBEH 6WERBEH
english9 english10 english11 13WERBEH 12WERBEH
english14 english15 english16
english17 20WERBEH english19 18WERBEH HE-EUOの組み込み処理は、HEBREW18にenglish19の右になるようにさせることに注意。
もし行が改められれば、もっと以下のものに近いものになるだろう。
2WERBEH 1WERBEH
-EH 4WERBEH english3
5WERB
-EH 7WERBEH 6WERBEH
8WERB
english9 english10 en-
glish11 12WERBEH
13WERBEH
english14 english15
english16
english17 18WERBEH
20WERBEH english19 HEBREW18はenglish19の前に読まれなければならないから、english19の上の行にある。早いフォーマット処理からの長い行の改行だけは、作用しない。english19からの最初の音節は、前の行にぴったり合うかもしれないが、右から左への方向のコンテキストにおいて、左から右への単語をハイフンでつなぐのと、またその逆のものは、行の中央にハイフンが表示されなければならないのを、普通避けると考えられる。
テキストのレイアウトにおいて、挙動の多くが文字種に基づく文字の分類に関連している。たとえば、行分けや行そろえの挙動は、要素のテキストの内容の'diminant'の文字に依存する。これは、要素において、あいまいでない、文字の識別子のある、最初の文字を見つけることによって、発見的に決定される。'script'のプロパティを使うことによっても、明示的に示すことができる。
| 値: | auto | none | <script> | inherit |
| 初期値: | auto |
| 適用先: | すべての要素 |
| 継承: | あり |
| 百分率: | 適用不可 |
| 媒体: | 視覚 |
値は以下の意味を持っている。
| 値: | start | end | left | right | center | justify | <string> | inherit |
| 初期値: | start |
| 適用先: | block-levelの要素 |
| 継承: | あり |
| 百分率: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、ブロックの行中の内容がどのように配置されるかを説明する。値には、以下の意味がある。
テキストのブロックは、行のボックスの積み重ねである。'start'、'end'、'left'、'right'および'center'の場合においては、このプロパティは、それぞれの行のボックスの中にあるインラインのボックスは、それぞれの行のボックスの、最初と最後の側に関して配置される。配置は、閲覧領域に関してなされるのではないのである。'justify'の場合においては、UAは、その位置を調節するのに加えて、行中のボックスを引き伸ばしてもよい。'letter-spacing'と'word-spacing'も参照。)
例:
この例において、'text-align'が継承されるため、'class=center'をもつDIVの内部のすべてのblock-levelの要素は、その行中の内容が中央にくるようにさせる。
DIV.center { text-align: center } | 値: | auto | inter-word | inter-ideograph | distribute | newspaper | inter-cluster | kashida | inherit |
| 初期値: | auto |
| 適用先: | block-levelの要素 |
| 継承: | あり |
| 百分率: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、行そろえの配置の種類を選択する。これは、'text-align'が'justify'に設定されているときにのみ、テキストのレイアウトに影響する。このように、このプロパティをサポートしていないUAは、完全に行そろえがなされたようなテキストを今までどおり描写するだろうが、ほとんどのときは、それは少なくとも部分的に正しい。一般的に、最後の行がそれ自体で行そろえがなされていなければ、text-justifyのプロパティは、最後の行には影響しない。text-justifyの値のほとんどは、非常に明確な風に、文書体系に影響する。その文書体系(やその集団)は、次のものである。
テキストの構成要素のtext-justificationの挙動は、文字列の文字の分類によって導かれる。'script'プロパティを用いると、その構成要素の挙動を変更することができる。
text-justifyの値により、空白処理は単語や文字の間において変更されるかもしれない。
text-justifyのプロパティに可能な値は次のものです。
下の図表は、どのように文字が要素の最後の二行においてレイアウトされるかを示すことによって、この形態を説明する。
図の3.2.1:inter-wordの行そろえがなされた要素で、最後の二行における混在した標識のレイアウト
たとえば、ビューアは以下のように'inter-word'の行そろえがなされた段落を描写することができる。
図の3.2.2:混在したテキストに適用された、単語間の行そろえ
以下の図表はこの形態を説明する。
図の3.2.3:newspaperの行そろえの要素の最後の二行における混在した文字のレイアウト
下の図表はこの様式を説明する。
図の3.2.4:inter-ideographの行そろえの要素の最後の二行における、混在した標識のレイアウト
下はこの様式が動作する方法の例である。
図の3.2.5:混在したテキストに適用された、inter-ideographの行そろえ
下の図表はこの様式を説明する。
図の3.2.6:distributeの行そろえの要素の最後の二行における、混在した文字のレイアウト
たとえば、ビューアは、以下のように'distribute'の行そろえがなされた段落を描写することができる
図の3.2.7:混在したテキストに適用されたdistributeの行そろえ
以下の表は、それぞれの適切なtext-justifyの値に対する、それぞれの文字の集団や、text-justifyのプロパティの値の組み合わせのための伸長・圧縮の手順を説明する。
| text-justifyのプロパティの値 | |||||||
|---|---|---|---|---|---|---|---|
| 文字の集団 | auto* | inter-word | newspaper | inter-ideograph | distribute | inter-cluster | kashida |
| Latin | word-spacingのみ* | word-spacingのみ | word-spacingとletter-spacingの間に優先順位付け | word-spacingのみ | word-spacingのみ | word-spacingのみ | word-spacingのみ |
| CJK | 特別な空白処理なし* | 特別な空白処理なし | letter-spacing | letter-spacing | letter-spacing | 特別な空白処理なし | 特別な空白処理なし |
| Devanagari* | word-spacing* | word-spacing | word-spacing | word-spacing | word-spacing | word-spacing | word-spacing |
| Arabic | kashidaとword-spacing* | word-spacing | kashidaとword-spacing | word-spacing | kashidaとword-spacing | word-spacing | kashidaとword-spacing |
| SEのアジアの群 | クラスタ間の空白処理* | クラスタ間の空白処理 | クラスタ間の空白処理 | 特別な空白処理なし | クラスタ間の空白処理 | クラスタ間の空白処理 | 特別な空白処理なし |
図の3.2.8:text-justifyの値と文字の集団の間の相互作用
*autoに対して示される値は、推奨でしかない。UAは、違った方法を実装してもよい。
*Devanagariの記載事項は、BengaliとGurmukhiのようなベースラインのコネクタを用いる、インドで使われるほかの文字や文書体系をも、同様に表す。
| 値: | auto | start | end | center | justify | size | inherit |
| 初期値: | auto |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティがブロックの行中の内容の最後の行がどのように整列されるかを説明する。これは、もしもたった一つの行であるBRの要素の前置きとしている行と、匿名のブロックの最後の行までを含んでいれば、唯一のブロックの行に適用する。典型的に最後の行はブロックの要素のほかの行のように整列され、これは'text-align'のプロパティで定められる。しかしながら、'text-align'のプロパティが'justify'に定められるときのような状態の中では、最後の行が違ったふうに整列されるかもしれない。
値は次に続く意味を持つ。
次に続く例は、すべての行が分配される両端のそろえでそろえられる場合において、整列のプロパティの使用法を示す。これは一般的に東アジアの印刷の体裁の中に見つけられる。
P.distributealllines
{ text-align: justify; text-justify: distribute; text-align-last: justify } | 値: | <font-size> | inherit |
| 初期値: | 0 |
| 適用先: | すべての要素 |
| 継承: | あり |
| パーセンテージ: | 要素の計算された'font-size' |
| 媒体: | 視覚 |
もしも、'text-align-last'が'size'ならば、要素の最後の行のフォントが'font-size'のsmallerと'min-font-size'より小さくなることは許されない。
| 値: | <font-size> | auto | inherit |
| 初期値: | auto |
| 適用先: | すべての要素 |
| 継承: | あり |
| パーセンテージ: | 要素の計算された'font-size' |
| 媒体: | 視覚 |
もしも'text-align-last'が'size'ならば、最後の行のフォントが'font-size'のlargerと'max-font-size'よりも大きくなることは許されない。'auto'は少しの制限もないことを意味する。
| 値: | none | punctuation | punct-and-kana | inherit |
| 初期値: | punctuation |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
'text-justify'が'inter-word'よりほかの何かであるとき、これは、テキストの両端のそろえのアルゴリズムに対して、個々のフォントの空白の圧縮の許可を定める。この特殊な種類のスペースの圧縮は、フォントの水準上で起こる。すなわち、文字範囲の中の空白は、標識の出現に影響を及ぼさずに、それ自身減少させてもよい。これは幅の広いセルの標識にだけ適用する。可能な値は、
図の3.4.1:少しも圧縮のない標識のレイアウト
図の3.4.2:句読点の圧縮のある標識のレイアウト
図の3.4.3:句読点とかなの圧縮のある文字のレイアウト
| 値: | <percentage> | inherit |
| 初期値: | 0% |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 説明されるように |
| Media: | 視覚 |
kashidaはアラビア語におけるいくつかの注意深く選ばれた点で文字の伸長を許す、アラビア語の文書体系で使われる印刷上の効果である。おのおのの伸長は、kashidaの点のおのおのの側でのたった一つの文字か符号である、kashidaの標識の数を使って成し遂げられることができる(UAはフォントに基礎付けられた機構か、または体系の特性を用いてよい)。text-kashida-spaceのプロパティは、0%は少しもkashidaの拡大をしないことを意味し、100%はkashidaの拡大だけを意味するという、空白の拡大の大きさに対するkashidaの拡大の比率を表現する。このプロパティは、kashidaの拡大が用いられる両端のそろえのスタイルとともに使われる。(今のところ、text-justify: auto、kashida、distributeおよびnewspaper).
アラビア語のテキストの二つのまったく同じ段落を示す下の図表において、第2番目の行(両端をそろえられない)の中の青い線は、赤い下線で示されるような最初の行(両端をそろえられる)におけるkashidaに対して用いられ、伸長の機会の中で分割される長さを示す。
図の3.5:アラビア語のテキストに対して適用されるKashida
その例の中では、text-kashidaのプロパティが100%に定められるということを示し、少しの拡大も、単語それ自身の間で起こらない。
与えられた文字体系の標識は、おのおのの標識に関する個々の点である整列の点が、その文字体系におけるほかの標識の整列の点と整列するように配置される。異なった文字体系の標識は、典型的に標識に関する異なった点で整列される。たとえば、西洋の標識が大文字の底に基づいて整列され、(Devanagari、Gurmukhi、Bengaliという文字体系からの標識を含めて、)あるインド語派の標識は、標識の上に近い水平な字画の上で整列され、東アジアの標識は、標識の全角の枠の底かまたは中央で整列される。文字の中で、ただ1個のフォントのサイズがあるテキストの行の中に、基準線と呼ばれる幾何学的な線を、行中の前進の方向の中で整列の点の連続が定義する。西洋とたいていのほかのアルファベットや音節を表す標識は、"アルファベット"の基準線に整列され、上に述べたインド語派の文字列は"吊り下げ"の基準線に整列され、"表意文字"の基準線に整列される。
この図は、ローマ字のAで例証される、アルファベットや多くの音節を表す文字体系に対して、Gurmukhiの音節"ji"で例証されるあるインド語派の文字体系に対して、そして、"country"を意味している表意文字の標識で例証される表意文字の文字体系に対して、整列の点の縦の位置を示す。表意文字の標識の周囲を回る細い黒色の矩形は、その標識に対する全角の枠を例証し、全角の枠の中の標識の"黒いしるし"の典型的な配置処理を示す。
基準線の表は、設計の空間の座標の体系において、ひとつかもっと多い基準線の位置を明示する。基準線の表の機能は、異なった文字体系が同じテキストの行の上に混合するときに、お互いに関してその整列を容易にするためのものである。望ましい相対的な整列は、どの文字体系が行(かブロック)の中のもっとも有力であるかに依存するかもしれない。加えて、違った整列の位置が横と縦の文書形態に対して必要とされる。それゆえに、フォントは、典型的に横の文書形態に対してひとつかもっと多く、縦の文書形態に対してはゼロかもっと多い、基準線の表の一そろいを持ってもよい。
横や縦の位置の例。それぞれの例において細く罫を引いた枠は、"全角の枠"である。ラテン語の標識に対しては、最初の文字・符合の全角の枠だけが示される。例の1は水平に書かれた典型的なラテン語のテキストを示す。このテキストは、青で示されたアルファベットの基準線と関連して配置される。例の2は、水平の表意文字の基準線上に配置された、典型的な表意文字の標識を示す。全角の枠がこの2つの場合に対して違った風に配置されることに注意せよ。例の3と4は縦の文書形態で用いられる基準線の同じセットである。ラテン語のテキストである例の3は、縦の文書体系における均整の取れたスペースのラテン語の標識に対して典型的である、90度のglyph-orientationで示される。例の4における表意文字の標識が、縦の表意文字の基準線上に配置されるのだが、全角の枠の中の中央におかれるから、同じ全角の枠のあるすべての標識が、お互いに関して鉛直で中央におかれる。
あるフォントに対するフォントの表は、そのフォントにおける個々の標識に対するフォントの特質を含む。CSSは、フォントの表が、横の文書体系に対するひとつの幅の値、ひとつの整列の基準線とひとつの整列の点を、フォントにおけるおのおのの標識に対して、当然含むと決めてかかる。縦の文書体系がサポートされれば、おのおのの標識は、縦書きの文書形態に対する、もうひとつの幅の値、整列の基準線と整列の点を持たなければならない。(幅として明示されるが、縦の文書形態に対しては、幅は縦の方向に用いられる。)
標識が属する文字体系は、標識が整列される基準線を決定する。設計の空間の座標の体系における基準線の位置は、整列の点の、デフォルトのブロックの前進の方向の位置を決定する。整列の点の、行中の前進の方向の位置は、標識の出だしの端にある。
この図は、おのおの全角の枠のある、三つの異なった文字体系からの標識と、全角の枠の中のその文字符号に適切な基準線を示す。おのおのの標識の整列の点は、全角の枠の出だしの端の"X"によって、そして整列の基準線を青色にすることによって示される。その標識に基準線にマップした文字の親要素の基準線は、打ちつけられた点の一そろいとして示される。
基準線の整列のプロパティは、その親について、子供の要素の整列を制御する。その基準線の位置は、次に続く図中で説明される。
この図は、下に定義される基準線の大部分とともに、Gurmukhi(吊り下げのインド語派の文字体系)、ラテン語と表意文字の文字体系の見本を示す。表意文字の標識を取り囲んだ細い線は、その標識が中央に置かれる全角の枠の記号である。この図中では、"テキストの前の端"と"テキストの後の端"の位置は、"アルファベット"の基準線がもっとも有力な基準線と仮定して計算される。"中央"という基準線は、図から省かれているが、だいたい"数学"という基準線が示される場所で、"テキストの前の端"と"テキストの後の端"という基準線の中間に位置する。
下の基準線の識別子は、この仕様書の中で使われる。その中には、フォントによって提供される基準線の情報を説明している項の中で説明されるように、フォントに含まれる基準線の表によって決定されるものもある。ほかは、下に説明されるほかのフォントの特質から計算される。
これはたいていのアルファベットや音節を表す文字体系によって用いられる基準線を識別する。これは、多数の西洋、南インド、東南アジア(表意文字でない)の文字体系を含むが、それらに限定されない。
これは。表意文字の文字体系によって用いられる基準線を識別する。歴史的な理由のために、この基準線は表意文字の全角の枠のそこにあり、象形文字の全角の枠の中央にはない。"中央"の基準線を見よ。表意文字の文字体系は、中国語、日本語、朝鮮語とベトナムのChu Nomを含む。
これは、あるインド語派の文字体系によって用いられる基準線を識別する。この文字体系はDevanagari、GurmukhiとBengaliを含む。
これは、数学の記号で使われる基準線を識別する。
これは、全角の枠の中央にある計算された基準線を識別する。基準線は、テキストの前の端とテキストの後の端という基準線の中間に位置する。
注意せよ。表意文字のフォントに対して、この基準線はしばしば標識を整列するのに使われる。これは、表意文字の基準線の代わりにとりうる方法である。
これは、xの高さの値の1/2だけ、変化の方向に、アルファベットの基準線から隔てられる基準線を識別する。基準線の位置は、フォントのデータから得られるかもしれないし、"xの高さ"に対してフォントの特質を持つフォントに対して得られるかもしれない。情報のそれらの断片のどちらか一方を欠くときは、基準線の位置は、"中央"という基準線に近づけられてもよい。
これは、全角の枠の前の端を識別する。この基準線の位置は、基準線の表中に明示されてもよいし、計算されてもよい。
注意せよ。この基準線の位置は普通はアセンダのあたりか、その上部にあるが、標識より上に現れることができるすべてのアクセントを取り囲んではならない。それらのフォントに対しては、"上昇"のフォントの特質の値が使われる。表意文字のフォントに対して、この基準線の位置は、通常は"表意文字"の基準線から変化の方向に1全角である。しかしながら、表意文字のフォントの中には、もっと厳格な調節を可能にするために、行中の前進の方向に切り詰めた幅を持つものもある。縦の文書様式に対してだけ設計された、そのようなフォントが横の文書形態の中で使われるとき、"テキストの前の端"という基準線はテキストの後の端から1全角より小さいかもしれない。
これは、全角の枠の後の端を識別する。この基準線の位置は、基準線の表中に明示されてもよいし、計算されてもよい。
注意せよ。ディセンダのあるフォントに対しては、その基準線の位置は通常はディセンダのあたりか、その下部にある。それらのフォントに対して、"降下"のフォントの特質の値が使われる。表意文字のフォントに対しては、基準線の位置は通常は"表意文字"という基準線にある。
ほかに、行の枠のためだけに定義される二つの計算された基準線がある。おのおのの行の枠に対して、すべての行を完全に含む最も近い祖先の要素のそれである、もっとも有力な基準線、基準線の表と、基準線の表のfont-sizeがある。"前の端"と"後の端"という基準線は次のとおり定義される。
行のもっとも有力な基準線からの、行の"前の端"という基準線の隔たりは、整列の基準線が"前の端"または"後の端"のいずれかであるすべての行中の枠を無視することによって決定される。"前の端"に対しては、広さが、枠の(相対的な)上部に向かう方向に、もっとも有力な基準線から測定される。"前の端"という基準線の隔たりは、残っている範囲の割り当ての矩形の"前の端"の最大の広さに定められる。もしも行の範囲の中のすべての行中の範囲が"前の端"か"後の端"のどちらかに整列されれば、行の"テキストの前の端"という基準線の隔たりを行の"前の端"の基準線の隔たりとして用いよ。
行のもっとも有力な基準線からの、行の"後の端"という基準線を隔たりは、整列の基準線が後の端であるすべての行中の枠を無視することによって決定される。"後の端"に対しては、広さが、参照の範囲の(相対的な)下部に向かう方向に、もっとも有力な基準線から測定される。"後の端"という基準線の隔たりは、(1)残っている範囲の割り当ての矩形の"後の端"の最大の広さ足す、(2)行の"前の端"の隔たりを引いた、無視される範囲の割り当ての矩形の最大の高さの、最大の負数に定められる。
注意せよ。もしも行の領域の中の行中の領域が、"後の端"に整列されれば、"前の端"に対する詳述は、行の"テキストの前の基準線"と一致するように"前の端"という基準線を定めるだろう。それから、上の事例(2)は、"前の端"の基準線までの割り当ての矩形までの最大の高さのある範囲の"前の端"を整列するであろう、"底の端"という基準線までの隔たりを決定するだろう。
注意せよ。"前の端"と"後の端"に対して上に述べた詳述は、次に続く三つのプロパティを持つ。(1)すべての範囲の割り当ての矩形が"前の端"の下にあり、(2)すべての範囲の割り当ての矩形が"後の端"の上にあり、(3)"前の端"と"後の端"の間の距離は(1)か(2)を破らずに減少されることができない。"前の端"と"後の端"の明示された配置は、(1)-(3)が満足したものにすることができる唯一の方法ではないが、"前の端"までの最も小さい可能な隔たりに満足したものにすることができる唯一の方法である。
"前の端"と"後の端"の整列を示している例
線や矢印のある矩形は示されるような固有の大きさのある画像である。矢印のない矩形は、デフォルトの、もっとも有力な基準線の整列を受ける画像を表す。ほかの矩形の整列は、(二つの矢印の頭があるとき、真ん中にある)矢印の頭から最も遠い点にある。例の1と2は、"前の端"という整列が、最も高い"前の端"で整列されていないものによって決定されること示す。例の1においては、これは、デフォルトで整列された矢印の頭の自由な矩形の画像であり、例の2においては、これは、対の頭をつけられた矩形である。例の3と4は、すべての枠が"前の端"または"後の端"という整列を持つとき、"テキストの前の端"をデフォルトにすることを示す。例の3では、"前の端"の整列がある画像が、"後の端"で整列された画像より高いメンバを持っている。例の4では、最も高い画像は、"後の端"で整列されたセットである。例の5は、"後の端"で整列された画像である最も大きい画像のある例の2の繰り返しである。
横の文書形態に対してだけ定義される四つの基準線もある。
この基準線は、横の文書形態において"前の端"という基準線と同じであり、縦の文書形態においては定義されていない。
この基準線は、横の文書形態において"テキストの前の端"という基準線と同じであり、縦の文書形態においては定義されていない。
この基準線は、横の文書形態において"後の端"という基準線と同じであり、縦の文書形態においては定義されていない。
この基準線は、横の文書形態において"テキストの後の端"という基準線と同じであり、縦の文書形態においては定義されていない。
その親に関する要素の整列は、親の調整された基準線の表と、整列されている要素の整列の基準線と整列の点という、三つの事によって決定される。整列より前に、親の調整された基準線の表が移し変えられるかもしれない。下のプロパティの詳述は、親と子供の要素を整列するのに必要な情報を提供する。
'dominant-baseline'、'alignment-baseline'、'baseline-shift'と'alignment-adjust'という、基準線の上に述べたセットに要素の整列を制御する四つのプロパティがある。それらのプロパティはすべて独立していて、典型的に、プロパティのひとつの詳述だけが、個々の整列の目的を成し遂げるのに必要とされるように設計される。
基本の基準線のプロパティは'dominant-baseline'というプロパティである。このプロパティは三つの構成要素のある複合の値を持っている。もっとも有力な基準線の識別子という構成要素は、二つの行中の範囲を整列するときに使われるために、デフォルトで'alignment-baseline'である。基準線の表という構成要素は、フォントの設計の空間の座標の中で基準線の位置を明示する。基準線の表は音楽のスタッフのように何かを務める。標識と行中の要素が整列されるブロックの前進の方向に沿って個々の点を定義する。基準線の表の'font-size'という構成要素は、基準線の表のための調整の要因を提供する。
'font-family'というプロパティの値がフォントのリストであるから、基準線の表の首尾一貫した選択を保証するために、標識のデータが利用できるリストの中の最初のフォントとして、フォントのリストの中の名目のフォントを定義する。これは、出会われるおのおのの文字のための、標識を含むことができる最初のものである。(この定義のために、もしも、フォントの代用がなされれば、あるいは、フォントが統合されれば、標識のデータは現在のものと決められる。)この定義は、使われるだろうフォントと基準線の表の内容の独立した決定を保証する。
便宜上、詳述は、(用語の誤用において)"もっとも有力な基準線"として、"dominant-baseline"というプロパティという、もっとも有力な基準線の識別子という構成要素によって識別される基準線に言及するときもある。
モデルは、おのおのの標識が、標識が整列されることになる基準線を明示する'alignment-baseline'の値を持っていると決めてかかる。('alignment-baseline'は、オープンタイプの基準線の表の説明における"基準線のタグ"と呼ばれる。)'alignment-baseline'の初期値は、与えられた標識と関連付けられた基準線の識別子を使う。'alignment-baseline'に対する交互の値は、文字体系のメンバであることに関してあいまいである'*'のような標識に役に立つことができる。
モデルは標識が描かれるフォントが、基準線の表であるフォントの基準線の表を持っていると決めてかかる。この基準線の表は、(0,0)という点からフォントが知っている基準線のおのおのまで全角ごとの構成単位における隔たりを持っている。
基準線の表における隔たりの値は、全角の端数の構成単位を意味する"設計の構成単位"において、ある。CSSはそれを"全角ごとの構成単位"と呼ぶ。だから、現在の'font-size'がもっとも有力な基準線から交互の基準線までの現実の隔たりを決定するのに使われる。
標識は、その'alignment-baseline'によって確認されるその基準線が、もっとも有力な基準線の表から、同じ名前のある基準線で整列されるように、整列される。
'alignment-baseline'によって識別されるもっとも有力な基準線から親の基準線までの隔たりは、もっとも有力な基準線の表と、もっとも有力な基準線の表のフォントの大きさを使って計算される。標識に適用できるフォントの基準線の表とフォントの大きさは、識別された基準線から標識の(0,0)という点までの隔たりを計算するために使われる。第2番目の隔たりは、変化の方向に(0,0)という点の位置を得るために、最初の隔たりから減じられたものである。両者の隔たりは、基準線の表からの基準線の値かける適切なフォントの大きさの値によって計算される。
もしも、'alignment-baseline'がもっとも有力な基準線を識別すれば、最初の隔たりはゼロで、標識はもっとも有力な基準線とともに整列される。そうでなければ、文字は選ばれた交互の基準線とともに整列される。
第3番目の基準線の整列のプロパティは、'baseline-shift'というプロパティである。"dominant-baseline"というプロパティよりほかのプロパティのように、このプロパティは基準線の表か基準船の表のフォントのサイズを変えない。内部の行中の要素が親の基準線のひとつに整列されたとき、内部の行中の要素が移るように、親の要素の全体の基準線の表を移す。
第4番目のプロパティは'alignment-adjust'というプロパティである。このプロパティは、特定の文字体系に属さず、あらかじめ定義された整列の点を持たない要素である、グラフィックスのようなものに対して主として使われる。"alignment-adjust"というプロパティは、作者が、オブジェクトの最初の端に、その要素のための整列の点が位置する場所を割り当てるのを可能にする。
これらのプロパティの次に続く定義に加えて、情報を与えるappendix: Bは、これらのプロパティの使用例を提供する。
| 値: | auto | use-script | no-change | reset-size| ideographic | alphabetic | hanging | mathematical | inherit |
| 初期値: | auto |
| 適用先: | 行中の水準の要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
The 'dominant-baseline'というプロパティは、調整された基準線の表を決定するか再決定するのに用いられる。調整された基準線の表は、三つの構成要素のある複合の値を持つ。
プロパティの値の中には、すべての三つの値を再定義するものもある。基準線のフォントサイズだけを再制定するものもある。プロパティに対する値は、以下に続く意味を持っている
もしも名目のフォントに基準線の表がなければ、あるいは基準線の表が望ましい基準線に対する記載事項を欠いていれば、ユーザエージェントは望ましい基準線の位置を決定するのに、ヒューリスティックを用いてもよい。
| 値: | baseline | auto-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical | inherit |
| 初期値: | baseline |
| 適用先: | 行中の水準の要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| メディア: | 視覚 |
このプロパティは、行中の水準の要素がどのようにその親に関して整列されるかを明示する。それは、親の基準線のいずれにこの要素の整列の点が整列されるかである。'dominant-baseline'というプロパティの違って、'alignment-baseline'というプロパティは、子供のもっとも有力な基準線に影響を持たない。
注。'alignment-adjust'というプロパティは、どのように整列の点が決定するかを明示し、alignment-baselineというプロパティの計算された値と同じ名前を持った基準線をデフォルトにする。
'auto-script'に対してを除いて、すべての基準線は、親のもっとも有力な基準線の、それぞれの基準線の識別子という構成要素とを参照し、要素の中の標識は、要素そのものと同様に整列される。'auto-script'に対する説明は、明確にそれらの点を含む。プロパティの値は以下に続く意味を持っている。
before-edge、text-before-edge、after-edgeとtext-after-edgeという値は、すべてwriting-modeのプロパティの値に関係して作用する。
注意せよ。'baseline'が、(類似したXSLのプロパティでは、'autoと呼ばれる')'auto-script'の代わりに初期値になっている理由は、今日のほとんどのフォントが、ラテン語でない文字体系に属している標識に対してさえ、'アルファベット'の水準でおかれる整列の点で設計されるという事実と関係がある。ユーザエージェントは、制約を処理しなければならず、だから、初期値として'baseline'という値を使うのである。
| 値: | auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length> | inherit |
| 初期値: | auto |
| 適用先: | 行中の水準の要素 |
| 継承: | なし |
| パーセンテージ: | 要素の'line-height'を参照する。 |
| Media: | 視覚 |
'alignment-adjust'というプロパティは、基準線の表を持っていないか、その基準線の表の中の望ましい基準線を欠く、要素のもっと精密な整列である、グラフィックのようなものを可能にする。'alignment-adjust'というプロパティで、'alignment-baseline'によって識別される基準線の位置が、はっきりと決定されることができる。また、テキストの要素の仲のおのおのの標識に対する配置の点もはっきりと決定する。ユーザエージェントは与えられた要素に対する存在していない基準線の位置を決定するために、ヒューリスティックを使うべきである。
プロパティに対する値は、以下の意味を持っている。
| Value: | baseline | sub | super | <percentage> | <length> | inherit |
| 初期値: | baseline |
| 適用先: | 行中の水準の要素 |
| 継承: | なし |
| パーセンテージ: | 親の要素の'line-height'を参照する |
| 媒体: | 視覚 |
'baseline-shift'というプロパティは、もっとも有力な基準線に関連した、もっとも有力な基準線の再配置を許可する。移されたオブジェクトは、下あるいは上付き文字となるかもしれない。移された要素の中で、ほんの一つだけの基準線ではなく、全体の基準線の表が隔てられる。下あるいは上付き文字に対して、隔たりの量は親の名目のフォントから決定される。
プロパティに対する値は次に続く意味を持っている。
注意せよ。'baseline-shift'と'alignment-adjust'というプロパティが同じことをしているように思われるかもしれないが、重要な違いがある。'alignment-adjust'の場合は、パーセンテージの値は整列されつつある要素の'line-height'を参照する。'baseline-shift'の場合は、パーセンテージの値は親の要素の'line-height'を参照する。同様に、それは配置されつつある要素の'sub'と'super'という隔たりよりむしろ、移された基準線を整列するのに使われる親の'sub'と'super'という隔たりである。一貫した下あるいは上付き文字の位置を保証するために、下あるいは上付き文字における"font-size"の変化のため"line-height"を変えたかもしれない下つき文字の要素よりむしろ、参照として親を使うことが、道理にかなっている。
"alignment-adjust"というプロパティを使うことは、内部のテキストの構造を持っていない配置しつつある要素である、グラフィックスのようなものに対して、もっと適当である。 "baseline-shift"は、もっとも有力な基準線に関連して定義される名づけられた隔たりよりむしろ、明白に示された基準線の隔たりを定義する方法を提供する。さらに、"baseline-shift"があることは、ツールが適切なプロパティを生成するのをもっと用意にする。多くのフォーマット処理のプロパティは、基準線の変化の考えをすでに持っている。
| 値: | auto | auto-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length> | inherit |
| 初期値: | auto |
| 適用先: | 行中の水準と'table-cell'の要素 |
| 継承: | なし |
| パーセンテージ: | 要素自身の'line-height'を参照する |
| 媒体: | 視覚 |
このプロパティは、行中の水準の要素によって生成される枠である行の枠の中の縦の配置処理に影響を与える。次に続く値は、親の行中の水準の要素に関してだけ、もしも匿名の行中の枠を生成するならな親のブロックレベルの要素に対して、意味を持っているそのような親が存在しなければ何の影響も及ぼさない。
注意せよ。このプロパティの値は、表の コンテキストにおいては少し違った意味を持っている。詳細については表の高さのアルゴリズムを見てください。
残っている値は、生成された枠が出現する行の枠を参照する。
基準線の整列のプロパティの設定はvertical-alignというプロパティに少しの影響もないから、'vertical-align'はそれらのための簡略表記法ではない。しかし、vertical-alignというプロパティは、次のとおりそれらを定めるので、たとえば、それらの整列のプロパティのマクロのように見られることもできる。
| vertical-alignの値 | alignment-baseline | alignment-adjust | baseline-shift | dominant-baseline |
|---|---|---|---|---|
| auto | baseline | auto | baseline | auto |
| baseline | baseline | auto | baseline | alphabetic (if no parent or
different flow from parent) no-change (otherwise) |
| sub | baseline | auto | sub | auto |
| super | baseline | auto | super | auto |
| top | before-edge | auto | baseline | auto |
| text-top | text-before-edge | auto | baseline | auto |
| middle | middle | auto | baseline | auto |
| bottom | after-edge | auto | baseline | auto |
| text-bottom | text-after-edge | auto | baseline | auto |
| <percentage> | baseline | <percentage> | baseline | auto |
| <length> | baseline | <length> | baseline | auto |
編集者の注:XSLの定義と次に続く違いがある。
alignment-baslineの初期値は、(XSLにおいて'auto'と呼ばれる)'auto-script'の代わりにbaselineである。これはユーザエージェントの現在の実行を反映する。
'vertical-align: baseline'は、(autoの代わりに)dominant-baseline:'alphabetic'か'no-change'にマップされる。
(新しい初期として提案される値)'vertical-align: auto'は、'dominant-baseline:auto'にマップされる。
編集者の注:vertical-alignを四つのほかの整列のプロパティの簡略表記法のプロパティにするのは心をそそるが、しかしながらいくつかの問題点がある。
vertical-alignは、たったひとつ挙げられるプロパティであり、簡略表記法にそれを変えることは、DOMの観点から問題を引き起こす。
個々のプロパティの値の名前は、alignment-base、alignment-adjustとbaseline-shiftに伴われて、最初にもっとも有力な基準線を持つように、厳密な連続が強制的でなければ、たった一つの簡略表記法で使われるために設計されない。使用は扱いにくい。
| 値: | <length> | <percentage> | inherit |
| 初期値: | 0 |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 包含しているブロックの幅を参照する |
| 媒体: | 視覚 |
このプロパティがブロックの中のテキストの最初の行のインデントを明示する。もっと正確には、ブロックの最初の行の枠に流れる最初の枠のインデントを明示する。枠は、行の枠の始まりの端に関してインデントされる。ユーザエージェントは空白としてこのインデントを描写すべきである。
値は以下に続く意味を持っている。
'text-indent'の値は負であってもよいが、それらは実装に特定の制限があってもよい。
例:
以下に続く例は、'3em'のテキストのインデントを引き起こす。
P { text-indent: 3em } ラテン語に基礎付けられた言語で書かれた文書の中で、文字の連続が単語と単語を構成するところは、スペースやハイフンで分けられ、行分けは相対的に簡単である。もっとも一般的な場合においては、(ハイフンの辞書はひとつもUAにすぐ利用できないと仮定すると)行分けは、U+ 00AD SOFT HYPHENを含めて空白文字やハイフンでだけ生じることができる。
しかしながら、たった一つの標識として現れるものが全体の単語を表すことができ、少しのスペースも、少しの単語の隔てている文字も必要とされない表意文字の印刷の体裁において、行分けの機会はスペースほど明らかでない。多数のほかの文字の後か前で生じることができる。一定の行分けの制限はそれでもなお適用されるが、ラテン語の印刷の体裁におけるのほど厳密ではない。
(付帯的な注として、タイ語はそれに独特な特殊な行分けの規則のある別の興味を起こさせる例である。タイ語の単語は文字の連続から構成されるから、その点においてはラテン語に似ている。しかし、単語の区切り文字としてのスペースや、事実上首尾一貫した単語の区切り文字がないことは、CJKと類似させる。ハイフンでつなぐための辞書がないときのラテン語と似ていて、タイ語は単語の中では決して行分けしない。実際は、語彙の認識がタイ語のテキストを行分けすることができようにするのに必要である。)。最終的に、U+200B ZERO WIDTH SPACEというユニコードの文字が、明確な行分けの機会を明示するためにそのような文字体系に挿入されることができる。
いくつかの"厳密さ"の水準は、日本語の印刷の体裁において使われることができる。これらの水準は、行分けの制限を加えるか取り除く。この仕様書の中で提供されるモデルは、'line-break'というプロパティを使って、日本語のテキストのための二つのもっとも一般に使われる行分けの水準を区別する。
表意文字の印刷の体裁において、常に好まれはしないが、それらのここの文字体系の改行の規則に従わずに、引用されたラテン語とハングルの内部で生じる行分けを許可する。この文書で提案されるモデルは、作者に'word-break-CJK'というプロパティを通して、その振る舞いの制御を与える。
最後に、付加的な語分けの機会は、長い単語に対して非常時に単語を分けることとハイフンでつなぐことを許可する、'word-break-wrap'と'word-break-inside'で制御される。すべてのそれらのプロパティは'word-break'の簡略表記法のプロパティを通してもまた利用可能である。
行分けは、ユニコードのウェブサイトから入手できるユニコードの技術上の報告書(TR#14)にもまた含まれる。詳細な勧告と、それは、それぞれのユニコードの文字に対する一致しているデータを含む。
| 値: | normal | strict | inherit |
| 初期値: | normal |
| 適用先: | すべての要素 |
| 継承: | あり |
| Percentages: | N/A |
| Media: | 視覚 |
このプロパティは、テキストのために使われるための行分けの規則のセットを選択する。下に説明される値は、特にCJKの作者に役に立つが、プロパティ自身は、なおまだCJKでない作者のための設定を明示していないものの、ほかに開かれている。(これは未来の拡張のための領域である。)
日本語において、行分けの制約のセットは、"禁則"と呼ばれる。JIS X-4051[JIS]は、規則の厳密なセットを使っているこの挙動のために参考となる評判のよい情報源である。このアーキテクチャは行分けの振る舞いの種類に文字を分類することを必要とする。それらの種類はそれから、それらの種類の発生でとられる一組の行動を、おのおのの横の列と縦の列の位置が表す二次元の振る舞いの表で分析される。二つのたとえば、閉じるための文字の種類と開くための文字の種類を与えられ、それらの二つの種類のその表の交点(開くための種類に属している最初の文字と閉じるための種類に属している二番目の文字)は行分けの機会を示さない。JIS X-4051で説明される規則は、もっと早くに簡単に述べられたユニコードの技術上の報告の#14に取って代わられた。
'normal'と'strict'という両者の値が、行分けの制約のセットが用いられていることを含むことに注意せよ。事実上、改行が表意文字の中のまさしくどこにでも現れることができるCJKにおける正当な改行の形態がないように見える。
| 値: | normal | break-all | keep-all | inherit |
| 初期値: | normal |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、CJLの観点から単語の中の行分けの振る舞いを制御する。
以下に続く例は、CJKでない文字体系がどこででも別れることができる段落を示す。
P.anywordbreaks { word-break: break-all } | 値: | normal | emergency | inherit |
| 初期値: | normal |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、単語に対する送り込むための振る舞いを制御する。もしも単語がただ一行の中に合うことができなければ、単語が行の終わりで任意に振り落とされることを可能にする。たとえば、これは、許可されるスクロールのない固定された容器の中の無理な非常に長い単語を扱う。可能な値:
| 値: | normal | hyphenate | inherit |
| 初期値: | normal |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、単語の内部でのハイフンでつなぐ振る舞いを制御する。可能な値:
| 値: | <'word-break-CJK'> || <'word-break-wrap'> || <'word-break-inside'> | inherit |
| 初期値: | 個々のプロパティを見よ |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
'word-break'というプロパティは、スタイルシートにおいて、同じ場所で'word-break-CJK'、'word-break-wrap'と'word-break-inside'を定めるための、簡略表記法のプロパティである。
すべての語分けに関係のあるプロパティは、まず初期値(すべて'normal')におきなおされる。それから、'word-break'という簡略表記法において明示的な値を与えられたそれらのプロパティは、それらの値に定められる。
たとえば、次に続く規則、
P { word-break: emergency } は、
P { word-break-CJK: normal }
P { word-break-wrap: emergency }
P { word-break-inside: normal } と同等である。
CSS2における'white-space'というプロパティは、実際には、包含しているブロックの枠の流れの端に達するとき、テキストを送り込むかどうか、元の中の空白を崩れさせるかどうかという二つの独立した軸を制御する。二つの新しいプロパティが、空白を越えた独立した作者/使用者の制御を許可するそれらの独立した軸を表すために、CSS3において取り入れられる。'white-space'というプロパティは、その二つの新しいプロパティを定める簡略表記法のプロパティと再定義される。
| Value: | normal | honor | inherit |
| 初期値: | normal |
| 適用先: | すべての要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、テキストの流れの中の空白が崩されるかどうか制御するか、あるいは現状のままでとっておく。
| 値: | normal | none | inherit |
| Initial: | normal |
| 適用先: | すべての要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、包含しているブロックの枠の流れの端に達するとき、テキストが送り込まれるかどうかを制御する。
| 値: | normal | pre | nowrap | inherit |
| 初期値: | normal |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | N/A |
| 媒体: | 視覚 |
このプロパティは、要素の中の空白がどんなふうに処理されるかを宣言する。Setting a value on the 'white-space'というプロパティ上の値を定めることは、'text-space'と'text-wrap'上のそれぞれの値を定める。
| white-space | text-space | text-wrap |
|---|---|---|
| | ||
| normal | normal | normal |
| nowrap | normal | none |
| pre | honor | none |
Example(s):
次に続く例は、どんな空白の振る舞いが、PREとPという要素と、HTMLにおける"nowrap"という属性から期待されるかを示す。
PRE { white-space: pre }
P { white-space: normal }
TD[nowrap] { white-space: nowrap } したがっているユーザエージェントは、作者と使用者のスタイルシートの中の'white-space'というプロパティを無視してもよいが、デフォルトのスタイルシートの中でそれに対する値を明示しなければならない。
テキストのあふれは、writing-modeというプロパティの値によって決定されるような、そのテキストの前進の方向に要素の枠からあふれ出るとき、テキストの内容が切られる状態を処理する。(UAの振る舞いが、ただ内容のスクロール処理に帰着するだけの後者の場合において、)この状態は'overflow'というプロパティが、ただhidden、scrollかautoという値を持つときだけに起こるかもしれない。
テキストのあふれは、作者が(後か最後の)要素の枠の中にあるテキストの流れの二つの末尾の境界で、視覚的な暗示を紹介することを可能にする。実際は文字の描写は変わるかもしれないが、暗示は一般的には省略文字の"..."である。画像が代わりに用いられるかもしれない。どちらか一方のテキストの流れの境界に対して、空でない文字列(あるいはimgに対するuri)を定めることにより、暗示の体裁を可能になる。もしも両方の暗示が現れるはずならば、'後'のヒントが描写される。ただ行の暗示の最後だけは示される(左から右への初期のテキストの前進の方向に対してのどんなあふれた行でも右側に一致する)。
tezt-overflowは、ヒントの文字の体裁を制御する'text-overflow-mode'と、枠の境界で表示されるヒントの文字の値を制御する'text-overflow-ellipsis'というプロパティと、'text-overflow'という簡略表記法のプロパティに分けられる。
| 値: | clip | ellipsis | ellipsis-word | inherit |
| 初期値: | clip |
| 適用先: | すべてのブロックの水準の要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
暗示の文字は、テキストの情報だけに取って代わる。もしも切り取りが取り替えられる要素で起これば、標準の切り取りが起こる。
プロパティは継承されないが、静的かまたは相対的におかれ、明示された幅または高さをもたないあふれている子供のブロックは、その親のtext-overflow-modeというプロパティの値を明示されたように暗示を与えられるだろう。次に続く例をよく考えてください。
<div> <p><span>I didn't like the play,</span> but then I saw it under adverse conditions - the curtain was up. <div class="attributed-to">_Groucho_Marx_</div> </p> </div>
これはあふれの状態を制御しているスタイルシートである。
div { width:100px; border: thin solid red; overflow: hidden;
text-overflow-mode:ellipsis;font-size:14px }
span { white-space : nowrap; }
div.attributed-to { position: relative;left:8px } これは、spanの内容に部分的に目に見えるように帰着し、省略符号が示され、相対的に配置される内部のdivが、ピクセルのほとんどない隔たりであるようにただ一部分の省略符号だけを示すだろう。
絶対的に配置されるブロックのような、ほかの子供のブロックまたは、明示された幅や高さがあるブロックは、暗示を示さないだろう。たとえば、次に示すスタイルを前の図の要素にに定めている、
p { width :100px; margin-top : 50px; margin-left : 50px; } は、(明示された幅をもち、そのうえテキストの送り込みが親の要素の'hidden'というあふれの領域で起こるから)その内容に対して省略符号は決して表示されないだろう。これは、次のように示されるだろう。
言い換えれば、text-overflow-modeは、それ自身の行中の流れの中で関係するブロックの要素のテキストの内容にだけ影響を及ぼす。
| Value: | [<ellipsis-end> | uri [, <ellipsis-after> | uri]?]?]?] | inherit |
| 初期値: | "..." |
| 適用先: | すべてのブロックの水準の要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
省略文字に対して使われるfont-seizeは、要素のfont-sizeである。
| 値: | <'text-overflow-mode'> || <'text-overflow-ellipsis'> | inherit |
| 初期値: | 簡略表記法のプロパティに対しては定義されない。 |
| 適用先: | すべてのブロックの水準の要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、'text-overflow-mode'と'text-overflow-ellipsis'に対する簡略表記法である。
| 値: | normal | <length> | inherit |
| 初期値: | normal |
| 適用先: | すべての要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティはテキストの文字の間のスペース処理の振る舞いを明示する。値は次に続く意味を持つ。
たとえばアラビア語のような結合された文字を用いた文書体系上で文字の空白処理を修正するという、視覚のほう快適な効果のために、プロパティの使用はその場合において思いとどまらされる。
行の全長に合う目的で文字の内容を拡大または圧縮するための、行の中に機会がほかに何もないから、両端のそろえが文字のスペース処理の効果をすべて変える日本語や中国語の文書体系のような場合がある。
文字のスペース処理のアルゴリズムはユーザエージェントに左右される。たとえば、空白処理はおのおのの文字の間では必ずしも起こらないだろうが、その代わりに文字かまたはクラスタ単位かいずれかを構成する標識の間で起こる。なお、このプロパティは、文字をつなぐ文字体系および/またはフォント(ローマ字の文字体系の続け書きのフォント、すべてのアラビア語の場合、Devanagariのような見出しがあるインド語派のなど)に対して用いられるべきではない。文字の空白処理は両端のそろえによっても影響される('text-align'というプロパティを見よ)。
例:
この例において、BLOCKQUOTEという要素の中の文字の間のスペースは、'0.1em'だけ増やされる。
BLOCKQUOTE { letter-spacing: 0.1em } 次に続く例の場合においては、ユーザエージェントは文字間のスペースを変更するように要請される。
BLOCKQUOTE { letter-spacing: 0cm } /* Same as '0' */ 結果として生じるスペースがデフォルトのスペースと同じではないとはいえ、ユーザエージェントは合字を使うべきではない。
適合しているユーザエージェントは、'letter-spacing'というプロパティの値を'normal'だとみなしてもよい。
| 値: | normal | none | <length> | inherit |
| 初期値: | normal |
| 適用先: | すべての要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは単語の間のスペース処理の振る舞いを明示する。値は次に続く意味持っている
単語のスペース処理のアルゴリズムはユーザエージェントに左右される。単語の境界を決定することは、一般的に空白の文字を検出することによってなされる。しかしながら、(日本語、中国語、タイ語などのように)何の文字によってもその単語を分けない多くの文字体系や文書体系があり、そのような場合において単語の境界を検出することは、すべてのユーザエージェントによってサポートされなくてもよいアルゴリズムに基づいた辞書を必要とする。単語の空白処理は両端のそろえによっても影響される('text-align'というプロパティを見よ)。
例:
この例の場合において、H1という要素の中のおのおのの単語の間の単語のスペース処理は、'1em'だけ増やされる。
H1 { word-spacing: 1em } 適合しているユーザエージェントは'word-spacing'というプロパティの値を'normal'だとみなしてもよい。
| 値: | none | start | inherit |
| 初期値: | none |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、その"インク"が上や下の行の中の最初の標識とともに並ぶために、全角の句読点の目印の符号が切り取られるかどうかを決定する。シナリオの中には、たとえば、文字・符号は縦に並ぶ傾向があることがもっと重要なときに、先導する句読点の目印が整えられるのを許さないことが、作者にとってむしろ望ましいかもしれないものもある。ほかのシナリオにおいては、たとえば、できるだけ多量のテキストがたった一つの行の上に合うことが作者にとって重要なとき、そのような効果が望ましい。
可能な値:

図の8.3.1: 先導する句読点の圧縮が少しもない標識のレイアウト

図の8.3.2: 先導する句読点の圧縮のある標識のレイアウト
(このプロパティは、全角だけでなく、そのうえ句読点のほかの種類に対するほかの句読点の振る舞いを含むように広げられるかもしれないことに注意せよ。)
| 値: | none | [ideograph-numeric || ideograph-alpha || ideograph-space || ideograph-parenthesis]| inherit |
| 初期値: | none |
| 適用先: | すべての要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
表意文字でないまたは数の文字の流れが、表意文字のテキストの内部に現れるとき、周囲の表意文字の標識から離すために、一定の量のスペースが表意文字でないテキストの両側でしばしば好まれる。このプロパティは、テキストを描写するとき、そのスペースの創造を制御する。その加えられる幅は、付加的なスペースの文字の挿入と一致しないが、その代わりとして存在している標識の幅の増加に一致する。
(この振る舞いを決定するための通例使われるアルゴリズムはJIS X-4051 [JIS]において明示される。)
このプロパティは、'word-spacing'および'letter-spacing'[CSS2]というプロパティに付加的なものあり、すなわち、'letter-spacing'の調節によって寄与されるスペース処理の量は、(もしあるなら、)'text-autospace'によって創造されるスペース処理に加えられる。同一のことは、'word-spacing'にも適用される。
可能な値:
<SPAN style="text-autospace:none">[表意文字]1997[表意文字]</SPAN>
は、
![]()
図の8.4.1:autospaceが動作しないようにされたときの混ざった標識のレイアウト
のように現れるだろうが、一方、
<span STYLE="text-autospace:ideograph-numeric">[表意文字]1997[表意文字]</span>
は、もっと、
![]()
図の8.4.2:autospaceが動作しないようにされたときの混じった標識のレイアウト
のように現れるだろう。
| 値: | none | [pair || contextual] | inherit |
| 初期値: | none |
| 適用先: | すべての要素 |
| 継承: | あり |
| Percentages: | 適用不可 |
| 媒体: | 視覚 |
このプロパティはすべてのカーニングの効果を制御する。カーニングの効果の中には、フォント上にはっきりとおかれる情報に基礎付けられる(ペアカーニング)。ほかのものはコンテキストと文字の中の一般的なインクの配置に基礎付けられる。ペアカーニングは、ラテン語、ギリシャ語とキリル語の文字体系に対して主に用いられる。ペアカーニングの一般的な例は、'Wa'という一組である。コンテキストのカーニングのよい例は、(広い幅の変形を用いるとき)'[['という一組である。可能な値:
| 値: | auto | <length> | inherit |
| 初期値: | auto |
| 適用先: | すべての要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティはフォントサイズのはじめを制御し、(もし動作可能にされれば)上のそのペアカーニングが有効とされる。
CSS2まで、利用できるテキストの装飾は、下線、上線、貫く線など...といったさまざまな効果を受けさせている'text-decoration'というプロパティと、text-shadowsというプロパティを通じて利用可能なものだけであった。しかしながら、text-decorationというプロパティには、構文から生じている制限がいくらかあり、多くの部分からなる'text-decoration'のフォーマットが同時に明示されることを許すが、そのフォーマット処理の効果のおのおののもっとすばらしい制御を不可能にする。もっと具体的にいうと、下線、上線または貫く線の色または線のスタイルを制御する方法を何も提供しない。
CSS3はそのフォーマット処理の効果の付加的な制御を許している新しいプロパティを紹介することによって、モデルを拡張する。また、CSS3はほかの'text-decoration'の調整に少しも影響を及ぼさない可能性の上で、あるいはから離れて、そのフォーマット処理の効果を変えることになる。
なお、東アジアの縦の文書の場合において、下線の使用法を反映するために、新しい制御が下線の配置に関して提供され、これは、下線がフォーマット処理されたテキストの前に(縦のテキストの流れの場合において右側に)、または後に(縦のテキストの流れの場合において左側に)現れることを可能にする。そのプロパティは、'text-underline-position'と呼ばれる。
'text-decoration'というプロパティそれ自身は、今ではすべてのその新しいプロパティに対する簡略表記法のプロパティである。
それらのプロパティは、要素のテキストに加えられる装飾を説明する。ブロックの水準の要素に対して明示されれば、要素のすべての行中の水準の子孫に影響を及ぼす。もし行中の水準の要素に対して明示されれば、(つまり、影響を及ぼせば、)生成されるすべての枠に影響する。要素が内容やテキストの内容(たとえば、HTMLにおけるIMG要素)を何も持っていなければ、ユーザエージェントはこれらのプロパティを無視しなければならない。
最後に、ユーザエージェントは、子供のテキストの大きさと基準線に基礎付けられた'線'のテキストの装飾の太さと位置を平均するか、または別々におのおのの子供を処理するかのどちらでも選んでもよい。次に続く図は下線に対して平均する処理を示す。
下線の細長い線は、おのおのの、連続する、下に線を引かれたテキストの部分に対する、大きなテキストの比が増加するにつれて、もっと低く、そして太く、下線のテキストの3つの部分に描かれる。
注:一般的に下線の上付き文字のテキストの部分は平均され、一方下付き文字の部分はされない。
| 値: | none | solid | double | dotted | thick | dashed | dot-dash | dot-dot-dash | wave | single-accounting | double-accounting | inherit |
| 初期値: | none |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは下線のスタイルを明示する。可能な値:
図の9.2.1:新しい下線のスタイル
| 値: | auto | <color> | inherit |
| 初期値: | auto |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは下線に対する色を明示する。
初期値である'auto'は、'color'というプロパティによって決定されることを示す。
| 値: | continuous | words | inherit |
| 初期値: | continuous |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、下線に対する形態、つまり、下線が切れ目のないものであるかどうか、語の下にだけ現れ空白の下には現れないのかどうかを明示する。可能な値:
| 値: | auto-pos | before | after | inherit |
| 初期値: | auto-pos |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、text-decorationというプロパティを通して定められるときの下線の位置を定める。その基準線の方向に対する関係におけるテキストの流れの'前'(横の流れにおいて上)または後(横の流れにおいて下)のいずれかに現れることができる。このプロパティは、下線をテキストの流れの'前'に現れさせることが望ましいかもしれない縦の文書のコンテキストにおいて一般的に用いられる。これは、下線が縦の文書の段の右側に現されていることに帰着する。
| 値: | <'text-underline-style'> || <'text-underline-color'> || <'text-underline-mode'> || <'text-underline-position'>| inherit |
| 初期値: | 簡略表記法のプロパティに対しては定義されない |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、'text-underline-style'、'text-underline-color'、'text-underline-mode'および'text-underline-position'に対する簡略表記法である。
| 値: | none | solid | double | dotted | thick | dashed | dot-dash | dot-dot-dash | wave | inherit |
| 初期値: | none |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは貫く線のスタイルを明示する。可能な値:
| 値: | auto | <color> | inherit |
| 初期値: | auto |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは貫く線に対する色を明示する。
初期値である'auto'は、'color'というプロパティによって決定されることを示す。
| 値: | continuous | words | inherit |
| 初期値: | continuous |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、貫く線に対する形態、つまり、貫く線が切れ目のないものであるかどうか、語を貫いてだけ現れ空白の貫いては現れないのかどうかを明示する。可能な値:
| 値: | <'text-line-through-style'> || <'text-line-through-color'> || <'text-line-through-mode'> | inherit |
| 初期値: | 簡略表記法のプロパティに対しては定義されない |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、'text-line-through-style'、'text-line-through-color'および'text-line-through-mode'に対する簡略表記法である。
| 値: | none | solid | double | dotted | thick | dashed | dot-dash | dot-dot-dash | wave | inherit |
| 継承: | none |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは上線のスタイルを明示する。可能な値:
| 値: | auto | <color> | inherit |
| 初期値: | auto |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは上線に対する色を明示する。
初期値である'auto'は、'color'というプロパティによって決定されることを示す。
| 値: | continuous | words | inherit |
| 初期値: | continuous |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、上線に対する形態、つまり、上線が切れ目のないものであるかどうか、語の上にだけ現れ空白の上には現れないのかどうかを明示する。可能な値:
| 値: | <'text-overline-style'> || <'text-overline-color'> || <'text-overline-mode'> | inherit |
| 初期値: | 簡略表記法に対しては定義されない |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、'text-overline-style'、'text-overline-color'および'text-overline-mode'に対する簡略表記法である。
| 値: | none | [ underline || overline || line-through || blink || <'text-underline'> || <'text-overline'> || <'text-line-through'>] | inherit |
| 初期値: | 個々のプロパティを見よ |
| 適用先: | すべての要素 |
| 継承: | なし(本文を見よ) |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは要素のテキストに加えられる装飾を説明する。もしもプロパティがブロックの水準の要素に明示されれば, すべての要素の行中の水準の子孫に影響を及ぼすだろう。inline-levelの要素に明示されれば、(あるいは、影響を及ぼせば、)要素によって生成されるすべての枠に影響を及ぼす。(たとえばHTMLの場合におけるIMG要素のように、)もしも要素が内容やテキストの内容を何も持っていなければ、ユーザエージェントはこのプロパティを無視しなければならない。
値は簡略表記法の説明(text-underline、text-overlineおよびtext-line-through)のプロパティの部分の組み合わせと、次に続くような明白な値の一そろいである。
{ text-underline: none; text-overline: none; text-line-through: none; } { text-underline-style: solid; } { text-overline-style: solid; } { text-line-through-style: solid; } テキストの装飾に対して必要とされる色は、最初は'color'というプロパティの値から得られるが、 個々のプロパティを用いることによって変更されることができる。加えるに、もしもテキストの装飾のスタイルが、テキストの装飾のいくつかに対してだけ存在するならば、結果は、たとえば、次に続く例におけるように、ほかの装飾のスタイルは初期値であるままであることになる。
P { text-decoration: "single accounting" blue; } Pという要素の内容は、'single accounting'という下線を引くためのスタイルで青で下線を引かれるだろう。ほかのテキストの装飾は一つもそのスタイルを持っていないので、初期値(none)であるままである。
このプロパティは継承されないが、ブロックの枠の子孫の枠は、同じ装飾でフォーマットされるべきだ(たとえば、すべて下線を引かれるべきだ)。子孫の色は、たとえ子孫の要素が異なる'color'の値を持っていたとしても同じままであるべきだ。
例:
HTMLに対する次に続く例において、ハイパーリンクの役を務めているすべてのAという要素のテキストの内容は、下線を引かれるだろう。
A[href] { text-decoration: underline } | 値: | none | [<color> || <length> <length> <length>? ,]* [<color> || <length> <length> <length>?] | inherit |
| 初期値: | none |
| 適用先: | すべての要素 |
| 継承: | なし(本文を見よ) |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、要素のテキストに適用されるべき影の効果の、コンマで分けられたリストを受け入れる。影の効果は、明示された順序で適用され、したがってお互いを上塗りするかもしれないが、テキストそれ自身は決して上塗りしないだろう。影の効果は枠のサイズを変更しないが、その境界を越えて拡大するかもしれない。影の効果の積み重ねの水準は、要素それ自身に対するものと同じである
おのおのの影の効果は影の隔たりを明示しなければならず、かすんで見える半径と影の色は任意に明示してもよい。
影の隔たりは、テキストからの距離を示す二つの<length>という値で明示される。最初の長さの値は、テキストの右へ横の距離を明示する。負の横の値はテキストの左へ影を配置する。第2番目の長さの値は、テキストの下へ縦の距離を明示する。負の縦の長さはテキストの上へ陰を配置する。
かすんで見える半径は、影の隔たりの後に任意に明示されてよい。かすんで見える半径は、かすんで見える効果の境界を示す長さの値である。かすんで見える効果を計算するための正確なアルゴリズムは明示されない。
色の値は影の効果の長さの値の前か後に任意に明示されてよい。色の値は影の効果に対して基準として用いられるだろう。もしも色が明示されなければ、'color'というプロパティの値が代わりに用いられるだろう。
テキストの影は:first-letterおよび:first-lineという擬似要素で用いられてもよい。
例:
下の例は、要素のテキストの右下へテキストの影を定めるだろう。色は何も明示されていないから、影は要素それ自身と同じ色を持っているだろうし、かすんで見える半径は何も明示されていないから、テキストの影はにじませられないだろう。
H1 { text-shadow: 0.2em 0.2em } 次の例は要素のテキストの右下へ陰を配置するだろう。影は5pxのかすんで見える半径を持っているであろうし、赤であろう。
H2 { text-shadow: 3px 3px 5px red } 次の例は影の効果のリストを明示する。最初の影は要素のテキストの右下のほうへあるだろうし、にじませる処理が何もない赤であろう。第2番目の影は最初の影の効果を上塗りするだろうし、黄色で、にじませられ、テキストの左下へ配置されるだろう。第3番目の影の効果は、テキストの左下へ配置されるだろう、第3番目の影の効果に対して影の色は何も明示されていないから、要素の'color'というプロパティの値が持ちられるだろう。
H2 { text-shadow: 3px 3px red, yellow -3px 3px 2px, 3px -3px } 例:
この例をよく考えよ。
SPAN.glow {
background: white;
color: white;
text-shadow: black 0px 0px 5px;
} ここで、'background'および'color'というプロパティは、同じ値を持っていて、'text-shadow'というプロパティは、"日食"という効果を創造するために使われる。
注意せよ。このプロパティはCSS1においては定義されていない。(最後の例におけるもののような)影の効果の中には、CSS1だけサポートしているUAの場合において、目に見えないテキストを描写するかもしれないものもある。
中国語あるいは日本語のような、東アジアの言語で書かれた文書の中の標識に対して、明示された一または二次元の格子にしたがってページの上にレイアウトされるために、たいへんありふれたものである。格子の構想は、ほかの、点字や、単一の空間を保たせられるレイアウトのような、表意文字でないコンテキストにおいてもまた用いられる。
下の図表は、日本人のユーザが、行ごとの9つの標識に帰着する格子(明晰のために示された灰色の格子の線)の上にレイアウトされることを意図した、混合の全角や半角の標識のあるページにおいて、横のテキストの断片を表す。
図の10.1: 混合したテキストに適用された'原稿'の格子
格子は標識の配置に影響を及ぼすだけでなく、また字下げの大きさ、マージンあるいは段落の整列のような、いくつかのほかのレイアウトに関係のある振る舞いであるその振る舞いも修正する。
中国語の場合おいてたいていだが、日本語の場合おいても時折使われる(別名"原稿")厳密なもの、日本語の場合において頻繁に、朝鮮語の場合において時々使われる厳密でないものも、点字、あるいは一般的に単一の間隔を保たせられるレイアウトのような、表意文字でないテキストにもしかすると役に立つ固定したものも、格子の三つの種類を区別することができる。
格子の種類は、UAがテキストの行をレイアウトするときどれだけ多くの適応性を可能にされるかを決定するレイアウトの規則の一そろいを必然的に伴う。
異なった格子が文書の違った場所に対して定義されることができる。
格子はテキストの断片の上にどちらか一方の次元において、選択的に動作しないようにされることができる。
行の格子は、個々の段落に対して動作しないようにされることができる。もしも行の格子がある段落に対して動作しないようにされれば、段落の行は、まるで行の格子が何も明示されていないかのようにレイアウトされる。動作しないようにされた行の格子のある段落の中の標識は、もしも明示されていれば、文字の格子を伴う。
この項で説明されたCSSのモデルは、作者が制御するために必要とする必要な格子のパラメータを受けさせる。
| 値: | loose | strict | fixed | inherit |
| 初期値: | loose |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
用いるための格子の種類を明示する。格子が動作可能にされ、明示されているとき、おのおのの格子の種類は、描写している内容に対する規則の違った一そろいを必然的に伴う。可能な値:
下の図表は格子の種類を説明する。
図の10.2.1:looseの格子におけるスペース処理の増加の配分 dFは全角の標識の間に適用されるスペース処理の量を表す。looseの格子のコンテキストの場合において、その量は'layout-grid-char'によって定められる。
図の10.2.2:混合されたテキストに適用されたlooseの格子
この形態の場合において、全角の標識あるいは(いくつかのカタカナの標識のような)ちょうどの半角の標識が使われさえしていれば、結果が実際上strictの格子のように見えるかもしれない。しかしながら、すべてのほかの幅の調整が有効であれば(テキストの両端のそろえ、文字の幅の調整、テキストの独自のスペースなど)、最終の結果は、一般的に、厳密でなく整列された格子のレイアウトである。テキストの流れの最初の部分は別として、格子は表意文字でない文字が流れにおいて現れてすぐに、'変則'のものとして現れるだろう。
図の10.2.3:strictの格子における混合した標識のレイアウト
図の10.2.4:の格子における物体のレイアウト
strictという形態は、すべての特別のテキストの両端のそろえおよび、要素の内容に標準的に適用される、標識の幅の調整を動作しないようにされる。
行分けの機会が行の境界を超えているテキストの流れの中に見つけられることができなければ、テキストの流れは次の行に下へ推し進められるだろうし、前の行の最後の部分は、左の余白になるだろう。
ここに格子における混在するテキストの例がある。
図の10.2.5:混合したテキストに適用されたstrictの格子
図の10.2.6:fixedの格子の場合における混合した標識のレイアウト
たとえば、
図の0.2.7:混合したテキストに適用されたfixedの格子
| 値: | none | auto | <length> | <percentage> | inherit |
| 初期値: | none |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 要素の総計の行の高さに比例する(本文を見よ) |
| 媒体: | 視覚 |
このプロパティは要素に対して行の格子の値を定める。もしも要素のテキストのレイアウトの流れが横ならば、このプロパティは"縦の"格子の大きさまたは格子の高さとみなされることができる。言い換えれば、レイアウトの流れの形態にかかわらず、常に行のスペース処理の増加を決定する。効果は、'line-height'の値を適用するという効果と、見た目はやや似通っている。'line-height'というプロパティはどうかといえば、ブロックの前進の方向と関係がある効果を持つ。横の流れの形態の場合においては高さに、また、縦の流れの形態の場合においては幅に、影響を及ぼす(レイアウトの流れの形態は'writing-mode'というプロパティによって制御される)。
このプロパティが効果を持つためには、'layout-grid-mode'が'line'か'both'に定められなければならないことに注意せよ(後者は初期値である)。
このプロパティが'none'よりほかの何に定められても、テキストの行は、デフォルトによって、格子の列の中で縦の中心におかれ、基準線とともに整列される。もしも計算されたline-heightが格子のスペースより大きければ、全体の行の枠は、行の枠が合うのに必要な格子の列の最も小さい数の中で中心におかれる。始まっている整列の点はそれに応じて移される。これは下で例証される。そこでaは数の'layout-grid-line'の値を表し、bとcは、計算されたline-heightと、それぞれlayout-grid-lineかまたは二倍の値かのいずれかとの間の、半分の違いである。
図の10.3.2: 行の格子の中の内容のレイアウト。そしてそこで、aはlayout-grid-lineの値を表し、整列の基準線は下(後の端)にある。
可能な値:
一定のline-heightの計算に関する限り、ルビの枠は特別に扱われる。line-heightの決定の過程と類似した仕方の場合において、ただルビの基部の要素だけが、中心におくための目的のためによく考えられるが、上に述べたおよび/あるいは後のスペースは、格子の行のスペースの中の基部のテキストの上および/あるいは後に合うのに十分であるべきだ。もしもこれがその場合でなければ、格子の行の大きさは全体のルビの枠があうまで格子の列の倍数に増やされる必要がある。
次に続くマークアップ、
DIV.section1 { writing-mode: lr-tb; layout-grid-line: .5in } は、横にレイアウトされた文書の部分の場合において、テキストのおのおのの行を0.5インチの縦のスペースの中に描写されるようにするだろう。また、下に示されるように、0.5インチのline-heightを持っているのとも同等である。
図の10.3.3:横のレイアウトの流れの場合における、混在したテキストに適用された、大きくされた行の格子
もしもその部分のレイアウトの流れが縦であれば、0.5インチが縦のテキストのおのおのの縦の段の幅である。このとき、0.5インチの値はおのおののセルの'幅'に適用される:
図の10.3.4:縦のレイアウトの流れの場合における、混在したテキストに適用された、大きくされた行の格子
もしも作者が、むしろ要素の中に現れるための行の明白に示された数(たとえば20)のほうを好めば、パーセンテージの値を用いるだろう。
DIV.section1 { layout-grid-line: 5% } | 値: | none | auto | <length> | <percentage> | inherit |
| 初期値: | none |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 要素の行の幅に比例する(本文を見よ) |
| 媒体: | このプロパティは'layout-grid-line'によって制御されるそれと直角をなす次元に影響を及ぼす。視覚 |
、もしも、'layout-grid-type'というプロパティが'strict'または'fixed'に定められるならば、文字の(つまり、もしも横のレイアウトの場合においてならば"横の")要素に対する格子の大きさを制御する。しかしながら、もしも、'layout-grid-type'が'loose'ならば、このプロパティは、おのおのの全角の標識に加えられる増加と、'layout-grid-type'の詳述の中の説明により、間接的に半角の標識に加えられた増加の、大きさを定める。'loose'の格子の場合におけるその効果は、'letter-spacing'というプロパティの効果にやや類似する。'layout-grid-line'というプロパティは、ブロックの前進の方向に関係がある効果を持っている。横の流れの形態は幅を、そして縦の流れの形態の場合においては高さに影響を及ぼす(レイアウトの流れの形態は、'writing-mode'というプロパティのよって制御される)。
このプロパティが効果を持つためには、'layout-grid-mode'が'line'か'both'に定められなければならないことに注意せよ(後者は初期値である)。
可能な値:
DIV.section1 { layout-grid-char: .5in } は、横のレイアウトされた文書の一部におけるおのおのの標識を、0.5インチ横のスペースの中に描写させる。
図の10.4.1:横のレイアウトの場合における混合したテキストに適用された大きくされた文字の格子
もしも部分のレイアウトの流れが縦であれば、0.5インチは、縦の段における連続する文字の間の縦の距離になる。
図の10.4.2:縦の表意文字のレイアウトの場合における混合したテキストに適用されたおのおのの文字の格子
もしも作者が、むしろ行の中に現れるための行の明白に示された数(たとえば5)のほうを好めば、パーセンテージの値を用いるだろう。
DIV.section1 { layout-grid-char: 20% } | 値: | none | line | char | both | inherit |
| 初期値: | both |
| 適用先: | すべての要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| Media: | 視覚 |
このプロパティは、選択的に、格子の二つの次元を動作可能にするか、動作しないようにする。可能な値:
| 値: | none | [<mode> || <type> || [<line> [<char>]? ] ] | inherit |
| 初期値: | 簡略表記法に対しては定義されない |
| 適用先: | すべての要素 |
| 適用先: | あり |
| パーセンテージ: | <char>と<line>に関して許される |
| 媒体: | 視覚 |
'layout-grid'というプロパティは、スタイルシートの中で同時に'layout-grid-mode'、'layout-grid-type'、'layout-grid-line'と'layout-grid-char'を定めるための簡略表記法のプロパティである。簡略表記法のプロパティに関して値である'none'を用いることは、'layout-grid-mode'を'none'に定める。値である"none none"を用いることは、'layout-grid-mode'と'layout-grid-line'を'none'に定め、値である"none none none"を定めることは、前のプロパティも、'layout-grid-char'も'none'に定める。
明示された最初の数、パーセンテージ、あるいは'auto'の値は、'layout-grid-line'を定める。もしも、第2番目の数、パーセンテージ、あるいは'auto'の値があれば、'layout-grid-char'を定める。たとえば、
DIV.section1 { layout-grid: both strict .5in 20% } 上の'layout-grid'というプロパティは、'layout-grid-type'を'strict'に定めさせ、'layout-grid-mode'を'both'に、'layout-grid-line'を0.5inに、そして'layout-grid-char'を親の幅の20%にするために定められる。
注意
{ layout-grid: both loose none none } 'none'という値は、格子を無効にする。ほかの'layout-grid-line'または'layout-grid-char'に関するどんなほかの値を定めるのであっても、その形態のどちらか一方あるいは両方において格子を有効にするだろう。
DIV.section1 { layout-grid: strict line .5in 20% } 20%という'layout-grid-char'の調整は有効にされないだろう。しかしながら、もっと後の'layout-grid-mode'を'both'かまたは'char'に変えれば、 有効になるだろう。制御のこの意義は、さまざまな次元が、テキストの部分に対して選択的に時折動作しないようにしたり、あるいは動作可能にしたりされるのではなく、同じ格子の次元が全体の文書中に使われるシナリオの場合において非常に役に立つ。
要素における格子の存在は、格子の単位の見地からその要素の中のさまざまな寸法を表現するのに非常に役に立つ。格子の単位は、東アジアの印刷の体裁において、特に左、右、上、下の要素のマージンに対して、非常に頻繁に用いられる。
それゆえ、作者に要素の見地からさまざまな寸法を明示することを可能にさせる、gdという新しい長さの単位が必要である。
たとえば、次に続くスタイルをよく考えよ。
P { layout-grid: strict both 20pt 15pt; margin: 1gd 3gd 1gd 2gd } このように、すべてのPの要素は、15ptの上のマージン、60ptの右のマージン、60ptの右のマージン、40ptの左のマージンを事実上得る。
もしも要素が何も明示されなければ、gdという単位は、emという単位と同じとみなされるべきだ。
編集者の注:これは単位の定義のモジュールに移されるべきだ。
| 値: | capitalize | uppercase | lowercase | none | inherit |
| 初期値: | none |
| 適用先: | すべての要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは要素のテキストの大文字使用の効果を制御する。値は以下に続く意味を持つ。
わずかであるけれども、ケースをマップするための処理には言語の依存がいくつかある。よく知られた例の中に、トルコ語とギリシャ語がある。HTMLの要素の言語を見つけるための方法としては、HTML[HTML40]を見よ。XMLはXML:LANGと呼ばれる属性を用い、そして言語を決定するためのほかの言語特有の方法があるかもしれない。
ユニコードの標準の3.0によって明示される文字のレパートリーに対するケースをマップするための規則は、ユニコードの協会のhttp://www.unicode.orgのウェブサイト上で見つけることができる。
適合するユーザエージェントは、ユニコードの標準の3.0にしたがって、その標準によって明示されるすべての文字に対して、ケースをマップする規則をサポートしなければならない。適合の規則は、CSSのもっと初期のバージョンより厳重であることに注意せよ。
例:
この例において、H1という要素の中のすべてのテキストは大文字のテキストに変換される。
H1 { text-transform: uppercase } | 値: | none | start | end | both | inherit |
| 初期値: | none |
| 適用先: | ブロックの水準の要素 |
| 継承: | あり |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは、句読点の記号が、もしあれば、パディングあるいはマージンの範囲の中の、内容の範囲の外側に配置されてもよいかどうかを決定する。句読点が、行の末尾でぶら下がることを可能にすることは、東アジアの印刷の体裁の場合において、ありふれた慣習である。句読点の有効な描写を許すための意味のあるパディングやマージンの範囲を創造することは、スタイルの作者の責任である。また、この効果から独立して、句読点の文字の圧縮を含めて、行の中で圧縮が起こるかもしれないことも注意されるべきことだ。
可能な値:
ここに突き出る処理が許されない例がある。
図の11.2.1:ぶら下がっている句読点は少しも許されない(明晰のために青で示された先行する句読点および文字)
次に続く例の場合においては、突き出る処理は内容の末尾で許容される。
図の11.2.2:行のパディングの領域の末尾に現れているぶら下がっている句読点(明晰のために青で示された先行する句読点および文字)
注:ユーザエージェントは、ただ最初の行だけか、またはすべての行かのいずれかを切り落とすために、文字体系の慣習に従うべきだ。ローマ字のテキストの中では、ただ最初の行の最初の点に現れている句読点だけが内容の範囲の外側に配置されるかもしれない。ほかの行においては不適切に見える。以下に続く図は現在の使用を示す。
| 値 | none | letters | lines | inherit |
| 初期値: | none |
| 適用先: | すべての要素 |
| 継承: | なし |
| パーセンテージ: | 適用不可 |
| 媒体: | 視覚 |
このプロパティは混成の文字(別名"組み文字")または行(別名"割注")の創造を制御する。
可能な値:
5つより多くない標識が一度に結合されることができる、もしも五つより多い標識がこのプロパティの調整とともに要素の中に含まれれば、ただ最初の五つの標識だけが結合されるべきだ。残りは正規のテキストとして描写されるべきである。以下に続くテキストは、2、3、4および5つの文字に対する配置を示す。
図の11.3.1:有効な"組み文字"の配置
以下のマークアップ、
SPAN.kumimoji { text-combine: letters } は、以下に続く4つの文字がひとつの文字として現れるようにすることができる(明晰のために青で示される)。
図の11.3.2:四つの文字に適用された"組み文字"
図の11.3.3:"割注"の中の標識のレイアウト
次に続くマークアップ、
SPAN.warichu { text-combine: lines }
は、取り囲まれたテキストを次に続くように見えさせる(明晰のために青で示される)。
図の11.3.4:10の文字に適用された"割注"
Note that それを成し遂げるための正確なアルゴリズムは些細なものではないことがありうるが、"割注"は、行にまたがって、分かれることも許される。また、割注のテキストは、丸括弧の内側に取り囲まれる。それらの丸括弧は、作者によって挿入される。
| プロパティ | 値 | 初期値 | 適用先 | 継承 | パーセンテージ | 媒体 | |
|---|---|---|---|---|---|---|---|
| 'alignment-adjust' | auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length> | inherit | auto | 行中の水準の要素 | なし | 要素の'line-height'を参照する | 視覚 | |
| 'alignment-baseline' | baseline | auto-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical | inherit | baseline | 行中の水準の要素 | なし | 適用不可 | 視覚 | |
| 'baseline-shift' | baseline | sub | super | <percentage> | <length> | inherit | baseline | 行中の水準の要素 | なし | 親の要素の'line-height'を参照する | 視覚 | |
| 'direction' | ltr | rtl | inherit | ltr | すべての要素だが、本文を見よ | あり | 適用不可 | 視覚 | |
| 'dominant-baseline' | auto | use-script | no-change | reset-size| ideographic | alphabetic | hanging | mathematical | inherit | auto | 行中の水準の要素 | なし | 適用不可 | 視覚 | |
| 'glyph-orientation-horizontal' | <angle> | inherit | 0deg | すべての行中の水準の要素 | あり | 適用不可 | 視覚 | |
| 'glyph-orientation-vertical' | <angle> | auto | inherit | auto | すべての要素 | あり | 適用不可 | 視覚 | |
| 'kerning-mode' | none | [pair || contextual] | inherit | none | すべての要素 | あり | 適用不可 | 視覚 | |
| 'kerning-pair-threshold' | auto | <length> | inherit | auto | すべての要素 | あり | 適用不可 | 視覚 | |
| 'layout-grid' | none | [<mode> || <type> || [<line> [<char>]? ] ] | inherit | 簡略表記法のプロパティに対しては定義されない | すべての要素 | あり | <char>および<line>に関して許される | 視覚 | |
| 'layout-grid-char' | none | auto | <length> | <percentage> | inherit | none | ブロックの水準の要素 | あり | 要素の行の幅に比例する(本文を見よ) | 視覚 | |
| 'layout-grid-line' | none | auto | <length> | <percentage> | inherit | none | ブロックの水準の要素 | あり | 総計の行の高さに比例する(本文を見よ) | 視覚 | |
| 'layout-grid-mode' | none | line | char | both | inherit | both | すべての要素 | あり | 適用不可 | 視覚 | |
| 'layout-grid-type' | loose | strict | fixed | inherit | loose | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'letter-spacing' | normal | <length> | inherit | normal | すべての要素 | あり | 適用不可 | 視覚 | |
| 'line-break' | normal | strict | inherit | normal | すべての要素 | あり | 適用不可 | 視覚 | |
| 'max-font-size' | <font-size> | auto | inherit | auto | すべての要素 | あり | 要素の計算された'font-size' | 視覚 | |
| 'min-font-size' | <font-size> | inherit | 0 | すべての要素 | あり | 要素の計算された'font-size' | 視覚 | |
| 'punctuation-trim' | none | start | inherit | none | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'punctuation-wrap' | none | start | end | both | inherit | none | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'script' | auto | none | <script> | inherit | auto | すべての要素 | あり | 適用不可 | 視覚 | |
| 'text-align' | start | end | left | right | center | justify | <string> | inherit | start | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'text-align-last' | auto | start | end | center | justify | size | inherit | auto | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'text-autospace' | none | [ideograph-numeric || ideograph-alpha || ideograph-space || ideograph-parenthesis]| inherit | none | すべての要素 | あり | 適用不可 | 視覚 | |
| 'text-combine' | none | letters | lines | inherit | none | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-decoration' | none | [ underline || overline || line-through || blink || <'text-underline'> || <'text-overline'> || <'text-line-through'>] | inherit | 個々のプロパティを見よ | すべての要素 | なし(本文を見よ) | 適用不可 | 視覚 | |
| 'text-indent' | <length> | <percentage> | inherit | 0 | ブロックの水準の要素 | あり | 包含しているブロックの幅を参照する | 視覚 | |
| 'text-justify' | auto | inter-word | inter-ideograph | distribute | newspaper | inter-cluster | kashida | inherit | auto | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'text-justify-trim' | none | punctuation | punct-and-kana | inherit | punctuation | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'text-kashida-space' | <percentage> | inherit | 0% | ブロックの水準の要素 | あり | 説明されているように | 視覚 | |
| 'text-line-through' | <'text-line-through-style'> || <'text-line-through-color'> || <'text-line-through-mode'> | inherit | 簡略表記法のプロパティに対しては定義されない | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-line-through-color' | auto | <color> | inherit | auto | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-line-through-mode' | continuous | words | inherit | continuous | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-line-through-style' | none | solid | double | dotted | thick | dashed | dot-dash | dot-dot-dash | wave | inherit | none | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-overflow' | <'text-overflow-mode'> || <'text-overflow-ellipsis'> | inherit | 簡略表記法に対しては定義されない | すべてのブロックの水準の要素 | なし | 適用不可 | 視覚 | |
| 'text-overflow-ellipsis' | [<ellipsis-end> | uri [, <ellipsis-after> | uri]?]?]?] | inherit | "..." | すべてのブロックの水準の要素 | なし | 適用不可 | 視覚 | |
| 'text-overflow-mode' | clip | ellipsis | ellipsis-word | inherit | clip | すべてのブロックの水準の要素 | なし | 適用不可 | 視覚 | |
| 'text-overline' | <'text-overline-style'> || <'text-overline-color'> || <'text-overline-mode'> | inherit | 簡略表記法のプロパティに対しては定義されない | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-overline-color' | auto | <color> | inherit | auto | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-overline-mode' | continuous | words | inherit | continuous | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-overline-style' | none | solid | double | dotted | thick | dashed | dot-dash | dot-dot-dash | wave | inherit | none | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-shadow' | none | [<color> || <length> <length> <length>? ,]* [<color> || <length> <length> <length>?] | inherit | none | すべての要素 | なし(本文を見よ) | 適用不可 | 視覚 | |
| 'text-space' | normal | honor | inherit | normal | すべての要素 | あり | 適用不可 | 視覚 | |
| 'text-transform' | capitalize | uppercase | lowercase | none | inherit | none | すべての要素 | あり | 適用不可 | 視覚 | |
| 'text-underline' | <'text-underline-style'> || <'text-underline-color'> || <'text-underline-mode'> || <'text-underline-position'>| inherit | 簡略表記法のプロパティに対しては定義されない | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-underline-color' | auto | <color> | inherit | auto | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-underline-mode' | continuous | words | inherit | continuous | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-underline-position' | auto-pos | before | after | inherit | auto-pos | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-underline-style' | none | solid | double | dotted | thick | dashed | dot-dash | dot-dot-dash | wave | single-accounting | double-accounting | inherit | none | すべての要素 | なし | 適用不可 | 視覚 | |
| 'text-wrap' | normal | none | inherit | normal | すべての要素 | あり | 適用不可 | 視覚 | |
| 'unicode-bidi' | normal | embed | bidi-override | inherit | normal | すべての要素だが、本文を見よ | なし | 適用不可 | 視覚 | |
| 'vertical-align' | auto | auto-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length> | inherit | auto | 行中の水準および'table-cell'の要素 | なし | 要素自身の'line-height'を参照する | 視覚 | |
| 'white-space' | normal | pre | nowrap | inherit | normal | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'word-break' | <'word-break-CJK'> || <'word-break-wrap'> || <'word-break-inside'> | inherit | 個々のプロパティを見よ | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'word-break-CJK' | normal | break-all | keep-all | inherit | normal | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'word-break-inside' | normal | hyphenate | inherit | normal | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'word-break-wrap' | normal | emergency | inherit | normal | ブロックの水準の要素 | あり | 適用不可 | 視覚 | |
| 'word-spacing' | normal | none | <length> | inherit | normal | すべての要素 | あり | 適用不可 | 視覚 | |
| 'writing-mode' | lr-tb | rl-tb | tb-rl | tb-lr | bt-rl | bt-lr | lr | rl | tb | inherit | lr-tb | すべての要素 | あり | 適用不可 | 視覚 |
この章によって定義される三つのモジュールがある。
CSS1のテキストのモデル:
CSS2のテキストのモデル:
CSS3のテキストのモデル:
CSS1のテキストのモジュールは、次に続くプロパティ値から作られる。
| 名称 | 値 | 初期値 | 適用先 (デフォルト:すべて) | 継承 | パーセンテージ (デフォルト:適用不可) | 媒体のグループ |
|---|---|---|---|---|---|---|
| 'letter-spacing' | normal | <length> | normal | あり | 適用不可 | ||
| 'text-align' | left | right | center | justify | start | ブロックの水準の要素 | あり | 適用不可 | |
| 'text-decoration' | none | [ underline || overline || line-through || blink ] | none | なし(本文を見よ) | 適用不可 | ||
| 'text-indent' | <length> | <percentage> | inherit | 0 | ブロックの水準の要素 | あり | 含んでいるブロックの幅を参照する | 適用不可 |
| 'text-transform' | capitalize | uppercase | lowercase | none | inherit | none | あり | 適用不可 | ||
| 'vertical-align' | baseline | sub | super | top | text-top | middle | bottom | text-bottom | <percentage> | baseline | 行中の水準 | なし | 適用不可 | |
| 'word-spacing' | normal | <length> | normal | 適用不可 | |||
| 'white-space' | normal | pre | nowrap | normal | ブロックの水準の要素 | あり | 適用不可 |
以下に続く表は、CSS2のテキストのモジュールを説明する。すべてのプロパティが、'inherit'という値を追加していて、媒体の種類を持っているから、すべてのCSS1のプロパティはなお示されている。加えられたプロパティは、'direction'、'text-shadow'および'unicode-bidi'である。さらに、'text-align'および'vertical-align' は、それぞれ<string>と<length>という新しい値を持っている。最後に、'vertical-align'は、表のセルの要素にもまた適用する。
| .名称 | 値 | 初期値 | 適用先 (デフォルト:すべて) | 継承 | パーセンテージ (デフォルト:適用不可) | 媒体のグループ |
|---|---|---|---|---|---|---|
| 'direction' | ltr | rtl | inherit | ltr | すべての要素だが、本文を見よ | あり | 視覚 | |
| 'letter-spacing' | normal | <length> | inherit | normal | あり | 視覚 | ||
| 'text-align' | left | right | center | justify | <string> | inherit | start | ブロックの水準の要素 | あり | 視覚 | |
| 'text-decoration' | none | [ underline || overline || line-through || blink] | inherit | none | なし(本文を見よ) | 視覚 | ||
| 'text-indent' | <length> | <percentage> | inherit | 0 | ブロックの水準の要素 | あり | 含んでいるブロックの幅を参照する | 視覚 |
| 'text-shadow' | none | [<color> || <length> <length> <length>? ,]* [<color> || <length> <length> <length>?] | inherit | none | なし(本文を見よ) | 視覚 | ||
| 'text-transform' | capitalize | uppercase | lowercase | none | inherit | none | あり | 視覚 | ||
| 'unicode-bidi' | normal | embed | bidi-override | inherit | normal | すべての要素だが、本文を見よ | なし | 視覚 | |
| 'vertical-align' | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length> | inherit | baseline | 行中の水準と表のセルの要素 | なし | 視覚 | |
| 'white-space' | normal | pre | nowrap | inherit | normal | ブロックの水準の要素 | あり | 視覚 | |
| 'word-spacing' | normal | <length> | inherit | normal | 視覚 |
CSS3のモジュールは次に続くプロパティを追加する。
また、説明されるように以下に続くプロパティを修正もする。
Note that the contents of this section are currently under discussion among the XSL, CSS&FP and I18N Working Groups.
In general, the existing [CSS2] properties that imply directionality or position are absolute, i.e. "left" means "left" and "top" means "top" regardless of the writing mode of the page. The purpose of this appendix however is to list the exceptions to that rule and clarify ambiguities. If a property does not appear in this list, it is intended to be interpreted as absolute, i.e. it does not rotate when the layout mode changes.
| CSS Property | Effect in vertical layout |
|---|---|
| 'background-attachment' | relative (logical) in the way that if it is set to 'scroll', then the scrolling of the background will occur in whatever direction the scrolling of the text occurs. |
| 'clear' | [see note] |
| 'direction' | relative (logical), i.e. ltr implies top-to-bottom character progression in vertical layout |
| 'display' | relative (logical), i.e. the values that are directional (table-) are relative to the element orientation as specified by the writing mode. |
| 'float' | [see note] |
| 'font-size' | relative (logical) i.e. the dimensions of each character rotate with the character |
| 'font-size-adjust' | relative (logical) i.e. the dimensions of each character rotate with the character |
| 'font-stretch' | relative (logical) i.e. the dimensions of each character rotate with the character |
| 'layout-grid-char' | relative to the line direction |
| 'layout-grid-line' | relative to the line direction |
| 'letter-spacing' | relative (logical), i.e. this controls the amount of spacing between consecutive letters, regardless of whether one follows the other horizontally or vertically |
| 'line-height' | relative (logical), i.e. this controls the "height" of a line if horizontal, or the "width", if vertical. In other words, this controls the size of the line in the dimension perpendicular to the baseline. |
| 'list-style-position' | relative (logical) i.e. inside/outside do not imply any particular direction. Therefore the positioning of the list bullet that this property controls takes place in the dimension parallel to the baseline. |
| 'marker-offset' | relative (logical) i.e. the distance specified here is in the dimension parallel to the baseline |
| 'orphans' | relative (logical) i.e. this property counts lines, whichever way they are oriented |
| 'overflow' | relative (logical) i.e. if it is set to 'scroll', the scrolling of the contents will occur in whatever direction it is necessary for it to occur. |
| 'page-break-after' | relative (logical), since the property does not imply any particular direction. It implies a page break after the element, i.e. in the direction in which the next line of text would appear relative to the previous one. |
| 'page-break-before' | relative (logical), since the property does not imply any particular direction. It implies a page break before the element, i.e. in the direction in which the next line of text would appear relative to the last line of the element. |
| 'quotes' | relative (logical), the concept of open-quotes and close-quotes is already used in CSS. Note that the quote glyph may vary depending on the glyph-orientation. |
| 'text-align' | 'left' and 'right' are physical in horizontal inline progression and UA dependent in vertical inline progression. 'start' and 'end' are always relative. |
| 'text-decoration' | relative (logical), i.e. underline and overline are parallel to the baseline. Underline appears on the left side of a vertical column and overline appears on the right |
| 'text-indent' | relative (logical), i.e. it affects the amount of spacing before the first letter in a paragraph in the dimension parallel to the baseline |
| 'unicode-bidi' | relative (logical), i.e. it affects glyph progression regardless of layout |
| 'vertical-align' | relative (logical), top and bottom values maps to before and after-edge values in baseline alignment properties |
| 'widows' | relative (logical) in the way that this property counts lines whichever way they are oriented |
| 'word-spacing' | relative (logical), i.e. this controls the amount of spacing between consecutive words, regardless of whether one follows the other horizontally or vertically |
Editor's note: Clear and float are two properties where the name of the values are really misnomer. 'top' and 'bottom' which have been proposed are pretty much meaningless in a vertical flow. Interpreting them in a relative meaning is also problematic. The editor is suggesting to:
add 'start' and 'end' values to the float and clear properties
do not add 'top' and 'bottom'
say that the behavior of 'left' and 'right' is UA dependent in vertical inline progression
'left' and 'right' are deprecated, 'start' and 'end' should be used instead.
see the description of the text-align property as the problem and the solution are very similar.
The following appendix shows some examples of baseline alignment, exercising the related properties .
A simple example of alignment is shown in the following figure. The figure shows the presentation of two inline elements, one inside the other. These inline elements make up the content of a line in a block where the writing-mode is "lr-tb" and the font is "Helvetica". The structure of the example is as follows:
<p><span class="outer">Apex <span class="inner">Top</span></span></p>
with the style being defined as:
p { writing-mode: lr-tb; font: Helvetica; }
span { alignment-baseline: auto-script; } The other baseline alignment initial values apply. Since a horizontal writing-mode is in use, the dominant-baseline-identifier is set to "alphabetic" and the baseline-table is taken from the nominal-font for the block in which the line appears, which, in this case, is Helvetica.
In the figure, the positions of the baselines relative to the current font size are shown as red (staff) lines. These lines are labeled with abbreviations of the names of the baselines (e.g., TBE for "text-before-edge"). The baseline identified by the dominant-baseline-identifier (A) is shown in blue. There is a break in the staff lines to separately show the inner inline element. This is not necessary for this example, but this distinction will become important in subsequent examples.
The "alignment-baseline" property is the primary control on the positioning of an inner element with respect to its parent. The initial value of the "alignment-baseline" property is "baseline". This aligns the dominant-baseline of the inner inline element with the dominant baseline of the outer inline element. This is shown by the short blue line that connects the two separated staffs (A) in the figure.
The glyphs that are in the content of the two elements are aligned based on the script to which the glyph belongs. Since this example only has Latin glyphs, they are aligned to the "alphabetic" baseline.
An inner inline element containing Latin characters aligned to an outer inline element also containing Latin characters.
In the next figure, the content of the inner inline element is in Gurmukhi, the script of the Punjabi language. The Gurmukhi syllables are read as, "guru". Rather than use Unicode values for these characters, they are symbolized by placing the Latin transliteration in italic type. The structure of the example becomes (assuming the same style):
<p><span class="outer">Apex <span class="inner">guru</span></span></p>
The only change from the previous example is that the glyphs of the Gurmukhi script are aligned to the "hanging" baseline of the inner inline element. The alignment of that element itself, with respect to the outer inline element, is unchanged. The "hanging" baseline position is computed from the font-table part of the dominant-baseline set of the parent element (in this case the outer inline element which is getting itself the set from its parent, the block element).
An inner inline element containing Gurmukhi characters aligned to an outer inline element containing Latin characters.
In the next figure, fragments of the text of the previous examples make up the content of the outer inline element. The inner inline element has a change of font-size, however. The structure is:
<p><span class="outer">Apguru <span class="inner">Exji</span></span></p>
with the following style:
p { writing-mode: lr-tb; font: Helvetica; }
span { alignment-baseline: auto-script; }
span.inner { font-size: .75em; } In this example, the alignment of the inner inline element itself does not change, nor does the alignment of the smaller glyphs inside the inner element. The Latin glyphs are still aligned to the "alphabetic" baseline and the Gurmukhi glyphs, which are pronounced "ji" are aligned to the "hanging" baseline. Note also that just changing the "font-size" property did not change the baseline-table in effect in the inner inline element.
The inner inline element has a reduced font-size.
The next figure is equivalent to the previous example with the Gurmukhi character replaced by ideographic characters. These are aligned to the "ideographic" baseline.
The previous figure redone with ideographic glyphs instead of Gurmukhi glyphs. The EM boxes are shown for the ideograms to clarify the alignment of these glyphs.
To change the scaling of the lines of the baseline table, it is necessary to use the "dominant-baseline" property on the inner inline element. The value of "reset-size" causes the baseline-table font-size to be reset from the font-size of the element on which the "dominant-baseline" property appears. The next figure shows the effect of this, using the structure:
<p><span class="outer">Apguru <span class="inner">Exji</span></span></p>
with the following style:
p { writing-mode: lr-tb; font: Helvetica; }
span { alignment-baseline: auto-script; }
span.inner { font-size: .75em; dominant-baseline: reset-size; } The alignment of the inner inline element, with respect to the outer inline element, is still determined by aligning the dominant baselines (alphabetic). But, the baseline-table of the inner inline element has been rescaled to the font-size of the inner inline element. Hence the smaller glyphs align with each other.
The baseline-table of the inner inline element has been resized to match the font-size of the inner inline element.
But, what if it is more important that the small Gurmukhi glyphs align with the large Gurmukhi glyphs than having the Latin glyphs align. There are at least two ways to achieve this. The structure:
<p><span class="outer">Apguru <span class="inner">Exji</span></span></p>
with the following style:
p { writing-mode: lr-tb; font: Helvetica; }
span { alignment-baseline: auto-script; }
span.outer {dominant-baseline: hanging }
span.inner { font-size: .75em; dominant-baseline: reset-size; } is illustrated in the next figure. The "hanging" baseline becomes the dominant baseline and the initial value of the "alignment-baseline" property causes the (newly) dominant "hanging" baselines to be aligned as is shown by the connection of the blue baselines.
Changing the dominant baseline to the "hanging" baseline causes the inner inline element to be aligned on its parent's "hanging" baseline.
It is also possible to achieve the effect of the above figure without changing the dominant baseline. Instead it is sufficient to explicitly specify that the inner inline element is aligned on its "hanging" baseline. This is done by:
<p><span class="outer">Apguru <span class="inner">Exji</span></span></p>
with the following style:
p { writing-mode: lr-tb; font: Helvetica; }
span { alignment-baseline: auto-script; }
span.inner { font-size: .75em; dominant-baseline: reset-size; alignment-baseline: hanging; } The only change this approach would make in the above figure is to color the "hanging" baseline red and keep the "alphabetic" baseline as the (blue) dominant baseline. This baseline in the inner inline element would not (as it does not in the above figure) align with the "alphabetic" baseline in the outer inline element.
Another baseline alignment property is the "baseline-shift" property. Like the properties other than the "dominant-baseline" property, this property does not change the baseline-table or the baseline-table font-size. It does shift the whole baseline table of the parent element so that when an inner inline element is aligned to one of the parents baselines, the position of the inner inline element is shifted. This is illustrated in the next figure. The structure which creates this figure is:
<p><span class="outer">Apex <span class="inner">1ji</span></span></p>
with the following style:
p { writing-mode: lr-tb; font: Helvetica; }
span { alignment-baseline: auto-script; }
span.inner { baseline-shift: super; } Because the whole set of baseline-table staff lines are shifted to the position of the superscript baseline: it does not matter to which baseline the glyphs in the superscript are aligned. The European number "1" is aligned to the "alphabetic" baseline and the Gurmukhi syllable "ji" is aligned to the "hanging" baseline.
Using a "baseline-shift" for a superscript (or a subscript).
It is more common for the font-size of the superscript text to be smaller than the font-size of the text to which it is appended. Consider:
<p><span class="outer">Apex <span class="inner">1ji</span></span></p>
with the following style:
p { writing-mode: lr-tb; font: Helvetica; }
span { alignment-baseline: auto-script; }
span.inner { baseline-shift: super; font-size: .75em; } Because changing the font-size on a superscript (or subscript) is common, this is the one case where changing the font-size does cause the baseline-table font-size to be reset when the "dominant-baseline" property has its initial value. After the rescaling, the default alignment to the dominant baseline positions the inline element for the superscript to the dominant baseline position in the shifted baseline-table of the parent element.
Reducing the font-size of the superscript automatically resets the baseline-table size so that mixed languages in the superscript stay mutually aligned.
この仕様書は、
Ayman Aldahleh, Stephen Deach, Martin Dürst, Laurie Anna Edlund, Ben Errez, Yaniv Feinberg, Arye Gittelman, Richard Ishida, Koji Ishii, Masayasu Ishikawa, Michael Jochimsen, Eric LeVine, Chris Pratley, Rahul Sonnad, Frank Tang, Chris Thrasher, Masafumi Yabe.
のかたがたの手助けがなければ考えられなかったであろう。
| Section | Comments |
|---|---|
| 2. Text layout |
|
| 4. Baseline Alignment |
|
| 7.4 Text overflow |
|
| 8. Text spacing |
|
| 9. Text decoration |
|
| 10. Document grid |
|
| 11.2 Punctuation wrap |
|
| 11.4 Text fitting |
|
| 13. Profiles |
|
| Annex B Usage of baseline alignment |
|