#?SuikaWiki/0.9
* table 要素 border 属性 (HTML, XHTML 1)
[1] [[HTML]] の [CODE(HTMLe)[[[table]]]] 要素の
[DFN[[CODE(HTMLa)[border]] 属性]]は、表の外側の枠線の幅を指定します。
仕様書: [[HTML 4]]
[[#comment]]
** スタイル・シート代替
[2] この属性は HTML 4 では'''非推奨'''とされているわけではありませんが、
視覚的指定に過ぎないことから、代わりに[[スタイル・シート]]で指定することが望ましいと考えられます。
[3] [[CSS]] や [[XSL]] では、
[SAMP(CSS)[[[border-width]]]] 系[[特性]]・[[属性]]で代用できます。
[[#comment]]
** 属性値
[4] この属性の値は [CODE[%[[Pixels]]]] です。
幅を[[画素]]単位で指定します。
(HTML 4 仕様書は、 [CODE(HTMLe)[[[img]]]]
要素などの同名属性との型の違いに注意を促しています。)
[[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。
([CODE(SGML)[[[NUMBER]]]] でもよかったのにと思いますが。)
[5] この属性は省略可能です。
[6] この属性は [SAMP(HTML)[border="2"]] のように記述しますが、
[[属性値指定]]を省略したような [SAMP(HTML)[border]]
という指定も使われてきました。この指定は [[SGML]]
的立場が微妙でしたが、最終的に[[列挙型]]の [CODE(HTMLa)[[[frame]]]]
属性の一属性値に収まりました。 >>7 を参照。
[[#comment]]
** 他の属性への影響
[8] HTML 4 仕様書は、後方互換性のため、 [[UA]]
は次のように解釈するべき (should) としています。
- [CODE(HTML)[border="0"]] は [CODE(HTML)[frame="void"]]
を暗示し、また、別途指定がない限り、 [CODE(HTML)[rules="none"]] を暗示する
- [CODE(HTMLa)[border]] の他の値は [CODE(HTML)[frame="border"]]
を暗示し、また、別途指定がない限り、 [CODE(HTML)[rules="all"]] を暗示する
- [CODE(HTMLe)[table]] 要素の[[開始タグ]]中の値 [CODE(HTML)[border]]
は [CODE(HTMLa)[frame]] 属性の値と解釈するべきである。
これは [CODE(HTMLa)[rules="all"]] を暗示し、
[CODE(HTMLa)[border]] 属性になんらかの (零でない) 既定値を暗示する。
[CODE(HTMLa)[[[rules]]]] には[Q[別途指定がない限り]]が係っているのに、
[CODE(HTMLa)[[[frame]]]] はそうでないのは、
[CODE(HTMLa)[frame]] に陽に指定があっても上書きされるということでしょうか?
最後の場合の [CODE(HTMLa)[rules]] にも修飾がありませんが、
これはどうでしょうか? (SGML 的には2つ目と [CODE(HTMLa)[border]]
属性の存在以外区別できないはずですが。)
[11]
そういえば [CODE(HTMLa)[border]] 属性の既定値の規定はありませんが、
他の属性を見て UA が勝手に決めてよいのでしょうか
(よくないと困るか)。
[15]
>>8 の3つ目 [Q[[CODE(HTMLa)[frame]] 属性の値と解釈するべき]]って、
それ以外の解釈は明らかに SGML
違反なのですから、 SGML 応用たる HTML
の仕様書が認めちゃいかんと思うのですがねぇ。
([[名無しさん]])
[[#comment]]
** 例
- [9] [SAMP(HTML)[]] == [SAMP(HTML)[]]
(HTML 4 仕様書より)
- [10] [SAMP(HTML)[]] == [SAMP(HTML)[]]
(HTML 4 仕様書より)
[14]
[PRE(HTML)[
Cups of coffee consumed by each senator
Name |
Cups |
Type of Coffee |
Sugar? |
T. Sexton |
10 |
Espresso |
No |
J. Dinnen |
5 |
Decaf |
Yes |
]PRE]
(HTML 4 仕様書より)
[13]
[PRE(HTML)[
]PRE]
(HTML 4 仕様書より)
レンダリング例:
[PRE[
# 1 | 2 | 3 #
# 4 | 5 | 6 #
# 7 | 8 | 9 #
]PRE]
[[#comment]]
* table 要素の開始タグの値 border (HTML, XHTML 1)
[7] [[HTML]] の [CODE(HTMLe)[[[table]]]] 要素の[[開始タグ]]には、
[DFN[[CODE(HTML)[border]]]] という値を指定できます。
これは、 [CODE(HTMLa)[border]] 属性の属性値の省略と解釈されてい
(ることもあり) ました。
しかし、 [[SGML]] 的にはありえないので、
最終的には[[列挙型]]の [CODE(HTMLa)[[[frame]]]] 属性の値 [CODE(HTML)[border]]
と別の属性 [CODE(HTMLa)[border]] として再定義されるに至りました。
[12] 未調査:
- [CODE(HTML)[border]] と [CODE(HTML)[border=[VAR[n]]]]
はどちらが先か、同時か。
- [[DTD]] での表現の変遷。
[[#comment]]
* メモ