
[8] [[HTML]] の要素型 [CODE(HTMLe)[[[tbody]]]], 
[CODE(HTMLe)[[[thead]]]], [CODE(HTMLe)[[[tfoot]]]], [CODE(HTMLe)[[[colgroup]]]], 
[CODE(HTMLe)[[[col]]]], [CODE(HTMLe)[[[tr]]]], [CODE(HTMLe)[[[th]]]], 
[CODE(HTMLe)[[[td]]]] で定義されている
[DFN[[CODE(HTMLa)[char]] 属性]]は、
こま内での文字揃えの軸となる[[文字]]を指定します。

仕様書: [[HTML 4]]
<IW:HTML4:"struct/tables.html#adef-char">

** スタイル・シート代替

[9] この属性は HTML 4 では'''非推奨'''とされてはいませんが、
[[スタイル・シート]]を使って指定するべきでしょう。

[10] [[CSS]] では [CODE(CSS)[[[text-align]]]] [[特性]]が使えます。

[[#comment]]


** 属性値

[5] この属性は [CODE(SGML)[%[[Character]]]] 型、すなわち何か1文字です。
[[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。

[13] HTML 4 仕様書には [Q[CN]] (大文字・小文字中立)
と書いてありますが、大文字も小文字も指定できるのに中立もへったくれもないでしょう。
区別されるのか、されないのか、はっきりしていただきたい。

[6] HTML 4 [[DTD]] 的には既定値はありません。 HTML 4
仕様書によれば既定値は [CODE(HTMLa)[[[lang]]]] 依存の[[小数点]]記号
(例えば英語では [CODE[.]], 仏蘭西語では [CODE[,]]) です。

それとは別に継承規則があります。 
(おそらく継承しても得られないときの既定値が小数点なのでしょう。)
継承規則については [CODE(SGML)[%[[cellhalign]]]]
の説明をみてください。

[[#comment]]


** 他との関係

[4] この属性は HTML 4 [[DTD]] では属性集合
[CODE(SGML)[%[[cellhalign]]]] に属しています。

[11] HTML 4 仕様書には明記されていませんが、この属性は
[CODE(HTMLa)[[[align]]]] 属性が [CODE(HTML)[char]] のときのみ有効なはずです。

[12] 揃え文字のこま中の位置を指定する
[CODE(HTMLa)[[[charoff]]]] 属性があります。

[[#comment]]


** 文字揃え効果

[15] こま内の文字データは、 [CODE(HTMLa)[char]]
によって揃えられることになります。

HTML 4 仕様書によれば、複数個 [CODE(HTMLa)[char]] 
の文字を含むときやこま内で[[折返し]]がある時の結果は未定義です。
ですから著者は注意するべきだとされています。

1つも [CODE(HTMLa)[char]] を含まないときについては
[CODE(HTMLa)[[[charoff]]]] に規定があって、
揃え位置にお尻を合わせることになっています。

[16]
>>15 HTML 4 の仕様書は1つも [CODE(HTMLa)[char]]を含まないときが [CODE(HTMLa)[charoff]] の規定の中に入っていてわかりにくいです。
[CODE(HTMLa)[charoff]] が省略されていたら1つもないときの挙動が未定義みたいに読めてしまう (けどそんなんじゃ困る)。

[[#comment]]


** 実装

[12] HTML 4 はこの属性は実装しなくても良いとしています。

実際ほとんどの [[WWWブラウザ]]は[[属性名]]の省略に対応していません。
対応している UA があったら教えてください。

[[#comment]]


** 例

[14]
[PRE(HTML)[
<TABLE border="1">
<COLGROUP>
<COL><COL align="char" char=".">
<THEAD>
<TR><TH>Vegetable <TH>Cost per kilo
<TBODY>
<TR><TD>Lettuce        <TD>$1
<TR><TD>Silver carrots <TD>$10.50
<TR><TD>Golden turnips <TD>$100.30
</TABLE>
]PRE]

(HTML 4 仕様書より)

レンダリング例:
[PRE[
------------------------------
|   Vegetable  |Cost per kilo|
|--------------|-------------|
|Lettuce       |        $1   |
|--------------|-------------|
|Silver carrots|       $10.50|
|--------------|-------------|
|Golden turnips|      $100.30|
------------------------------
]PRE]

* メモ

[REFS[
- [17] [CITE@en[ch attribute | ch property (Internet Explorer)]] ([TIME[2013-11-14 12:19:45 +09:00]] 版) <http://msdn.microsoft.com/en-us/library/ms533552%28VS.85%29.aspx>
]REFS]

[18] [CODE(HTMLa)@en[[[ch]]]] [[内容属性]]に対応することになっていますが、少なくても [[IE10]]
では [CODE(HTMLa)@en[[[char]]]] [[内容属性]]に対応しているみたいです。