[1] HTML の table
要素の
border
属性は、表の外側の枠線の幅を指定します。
仕様書: HTML 4 <IW:HTML4:"struct/tables.html#adef-border-TABLE">
[26]
HTML 4 DTD の注釈 (参考) には
The BORDER attribute sets the thickness of the frame around the table. The default units are screen pixels.
という説明があります。単位についての記述は HTML 3 の名残でしょうか。
(名無しさん [sage])
[2] この属性は HTML 4 では非推奨とされているわけではありませんが、 視覚的指定に過ぎないことから、代わりにスタイル・シートで指定することが望ましいと考えられます。
[4] この属性の値は %Pixels
です。
幅を画素単位で指定します。
(HTML 4 仕様書は、 img
要素などの同名属性との型の違いに注意を促しています。)
SGML 的には CDATA
です。
(NUMBER
でもよかったのにと思いますが。)
[5] この属性は省略可能です。
[6] この属性は border="2" のように記述しますが、
属性値指定を省略したような border
という指定も使われてきました。この指定は SGML
的立場が微妙でしたが、最終的に列挙型の frame
属性の一属性値に収まりました。 >>7 を参照。
[8] HTML 4 仕様書は、後方互換性のため、 UA は次のように解釈するべき (should) としています。
border="0"
は frame="void"
を暗示し、また、別途指定がない限り、 rules="none"
を暗示するborder
の他の値は frame="border"
を暗示し、また、別途指定がない限り、 rules="all"
を暗示するtable
要素の開始タグ中の値 border
は frame
属性の値と解釈するべきである。
これは rules="all"
を暗示し、
border
属性になんらかの (零でない) 既定値を暗示する。rules
には別途指定がない限り
が係っているのに、
frame
はそうでないのは、
frame
に陽に指定があっても上書きされるということでしょうか?
最後の場合の rules
にも修飾がありませんが、
これはどうでしょうか? (SGML 的には2つ目と border
属性の存在以外区別できないはずですが。)
[11]
そういえば border
属性の既定値の規定はありませんが、
他の属性を見て UA が勝手に決めてよいのでしょうか
(よくないと困るか)。
[15]
>>8 の3つ目
って、
それ以外の解釈は明らかに SGML
違反なのですから、 SGML 応用たる HTML
の仕様書が認めちゃいかんと思うのですがねぇ。
(名無しさん)frame
属性の値と解釈するべき
The value "border" is included for backwards compatibility with <TABLE BORDER> which yields frame=border and border=implied For <TABLE BORDER=1> you get border=1 and frame=implied. In this case, it is appropriate to treat this as frame=border for backwards compatibility with deployed browsers.
と書かれています。 (名無しさん [sage])
<TABLE border="1" summary="This table charts the number of cups of coffee consumed by each senator, the type of coffee (decaf or regular), and whether taken with sugar."> <CAPTION>Cups of coffee consumed by each senator</CAPTION> <TR> <TH>Name</TH> <TH>Cups</TH> <TH>Type of Coffee</TH> <TH>Sugar?</TH> <TR> <TD>T. Sexton</TD> <TD>10</TD> <TD>Espresso</TD> <TD>No</TD> <TR> <TD>J. Dinnen</TD> <TD>5</TD> <TD>Decaf</TD> <TD>Yes</TD> </TABLE>
(HTML 4 仕様書より)
<TABLE border="5" frame="vsides" rules="cols"> <TR> <TD>1 <TD>2 <TD>3 <TR> <TD>4 <TD>5 <TD>6 <TR> <TD>7 <TD>8 <TD>9 </TABLE>
(HTML 4 仕様書より)
レンダリング例:
# 1 | 2 | 3 # # 4 | 5 | 6 # # 7 | 8 | 9 #
[7] HTML の table
要素の開始タグには、
border
という値を指定できます。
これは、 border
属性の属性値の省略と解釈されてい
(ることもあり) ました。
しかし、 SGML 的にはありえないので、
最終的には列挙型の frame
属性の値 border
と別の属性 border
として再定義されるに至りました。
[12] 未調査:
[24]
border
(元)真偽値属性はなんと
HTML 仕様案に一番最初に表が入った時
(当時はまだ要素型名が
table
じゃなくて
tbl
だった。)
からずっとあります。
border
なしが default
なのだから table
は元々レイアウト用だったのだろ、とか勝手に思い込んでいる人もいるようですが、
ただ単に、線を引かないという指定よりも線を引くという指定の方が分かりやすいからとかそんなような理由でしょう。
参考になった LaTeX などの表モデルもどこに線を引かないか
ではなくどこに線を引くか
の指定ですし。
(名無しさん)
[30] WinIE, Firefox 1.5, Opera 8で確認してみましたが、
<table border>
は
<table border="1">
と内部的に扱われているようです。
[16] HTML の object
要素および
img
要素の border
属性は、
物体や画像を囲む枠の太さを指定します。
[17] 仕様書:
[25]
HTML 4 DTD の注釈 (参考) には
link border width
と書かれています。
(名無しさん [sage])
[20] この属性の値は %Pixels
です HTML 4.01 13.7.3
(以前は %Length
とされていました HTML 4.0 13.7.3)。
SGML 的には CDATA
です。
[29]
img
要素では、非標準の値
noborder
が観測されています。
[21] この属性は省略可能です。省略した場合の既定値は UA 依存です。 HTML 4 13.7.3
[22] mosaic 以来の視覚ブラウザの典型既定レンダリングは、
画像が (a
の子孫で)
始点アンカーであるときにはリンク前景色で四辺を枠線で囲み、
それ以外のときには枠線なしです。
[23] >>22 の既定レンダリングはえらく不評らしく、
a
内の img
には
を指定するというborder
="0"技
がタグ講座でよく紹介されていましたし、
実際にもよく使われていました。
それに対してリンクであることがわかりにくくなるから好ましくないとの意見もありました。
[32] img
要素の
border
属性は HTML 2.0 の拡張として
Netscape Navigator が実装しました。
画像の周りの枠線の太さが指定できるとされていました。
リンクの一部たる画像の border
を 0
にすると利用者が混乱する虞があると警告されていました。
[33]
入力フォームとマルチメディアを活用する (2007-06-10 21:04:18 +09:00
版) <http://www.atmarkit.co.jp/fmobile/rensai/xhtml04/xhtml04.html>
HTMLの<img>タグとまったく同様。ただしモバイル向けの場合、リンクを張ったときには「border="1"」にして、利用者にリンクを張っている画像であることを告知するのが暗黙の了解となっている。ピクチャー広告(通常のWebでいうバナー広告のこと。モバイルではこのように呼ぶことが多い)などの扱いに気を付けたい。
この連載は妄想が多いので本当かどうか知りませんが。