* table 要素 frame 属性 (HTML, XHTML 1)
[1] [[HTML]] の [CODE(HTMLe)[[[table]]]] 要素の [DFN[[CODE(HTMLa)[frame]] 属性]]は、
表の枠のつけ方を指定します。
仕様書: [[HTML 4]]
[[#comment]]
** スタイル・シート代替
[5] この属性は、 HTML 4 では'''非推奨'''とはされていません。
[[表]]の特殊性によるものとも思えませんし、 [[HTML 4.0]]
の時点で表を扱えない [[CSS1]] だけで [[CSS2]]
がまだ勧告されていなかったのが原因かもしれません。
[6] [[CSS]] での代替方法は >>2 の表をご覧下さい。
[[XSL]] でも同じような指定ができます。
[[#comment]]
** 属性値
[2] この属性は[[列挙型]]属性です。
,属性値,説明,CSS 代替
,[CODE(HTML)[[[void]]]] (既定値),なし,[SAMP(CSS)[border-style: none]]
,[CODE(HTML)[[[above]]]],上,[SAMP(CSS)[border-style: [VAR[あり]] none none none]]
,[CODE(HTML)[[[below]]]],下,[SAMP(CSS)[border-style: none none [VAR[あり]] none]]
,[CODE(HTML)[[[above]]]],上,[SAMP(CSS)[border-style: [VAR[あり]] none none none]]
,[CODE(HTML)[[[hsides]]]],上下,[SAMP(CSS)[border-style: [VAR[あり]] none]]
,[CODE(HTML)[[[vsides]]]],左右,[SAMP(CSS)[border-style: none [VAR[あり]]]]
,[CODE(HTML)[[[lhs]]]],左,[SAMP(CSS)[border-style: none none none [VAR[あり]]]]
,[CODE(HTML)[[[rhs]]]],右,[SAMP(CSS)[border-style: none [VAR[あり]] none none]]
,[CODE(HTML)[[[box]]]],すべて,[SAMP(CSS)[border-style: [VAR[あり]]]]
,[CODE(HTML)[[[border]]]],すべて,[SAMP(CSS)[border-style: [VAR[あり]]]]
[3] [[DTD]] では特に既定値は指定されていませんが、
仕様書本文では [CODE(HTML)[void]] とされています。
[7] [CODE(HTMLa)[[[border]]]] 属性値の [CODE(HTML)[0]] は
[CODE(HTML)[frame=void]] を、それ以外は [CODE(HTML)[frame=border]]
をほのめかすと HTML 4 仕様書には書かれています。
これが >>3 の理由でしょう。
同時に [CODE(HTMLa)[[[rules]]]] 属性も補われますが、
こちらには仕様書に[Q[別途指定がなければ]]と注記があります。
ということは、 [CODE(HTMLa)[frame]] 属性は陽に指定してあっても
[CODE(HTMLa)[border]] 属性が優先するのかもしれません。
(なお、この規定は[Q[互換性のためにそうするべき (shoukd)]] というものです。)
[4] 列挙型ですから、 [[SGML宣言]]の指定によっては
[SAMP(HTML)[frame="above"]] を単に [SAMP(HTML)[above]]
とだけ書いたりもできるのですが、
[[WWWブラウザ]]のほとんどはそのような書き方には対応していないでしょう。
唯一の例外は [CODE(HTML)[border]] で、これは
[CODE(HTML)[border]] とだけ書く ([CODE(HTMLa)[[[border]]]]
属性の [CODE(SGML)[[[vi]]]] と[[属性値指定]]が省略できるという非 SGML 的な)
従来からの方法との互換のための trickey な方法としてわざわざ入れられています。
[Q[真偽値属性値]] [CODE(HTML)[border]] の歴史については
[CODE(HTMLa)[[[border]]]] 属性の説明をごらんください。
[[#comment]]
** メモ
[[#comment]]
* メモ