border

border 属性 (HTML)

table 要素 border 属性 (HTML, XHTML 1)

[1] HTMLtable 要素の 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 では非推奨とされているわけではありませんが、 視覚的指定に過ぎないことから、代わりにスタイル・シートで指定することが望ましいと考えられます。

[3] CSSXSL では、 border-width特性属性で代用できます。

属性値

[4] この属性の値は %Pixels です。 幅を画素単位で指定します。

(HTML 4 仕様書は、 img 要素などの同名属性との型の違いに注意を促しています。)

SGML 的には CDATA です。 (NUMBER でもよかったのにと思いますが。)

[5] この属性は省略可能です。

[6] この属性は border="2" のように記述しますが、 属性値指定を省略したような border という指定も使われてきました。この指定は SGML 的立場が微妙でしたが、最終的に列挙型frame 属性の一属性値に収まりました。 >>7 を参照。

他の属性への影響

[8] HTML 4 仕様書は、後方互換性のため、 UA は次のように解釈するべき (should) としています。

rules には別途指定がない限りが係っているのに、 frame はそうでないのは、 frame に陽に指定があっても上書きされるということでしょうか? 最後の場合の rules にも修飾がありませんが、 これはどうでしょうか? (SGML 的には2つ目と border 属性の存在以外区別できないはずですが。)

[11] そういえば border 属性の既定値の規定はありませんが、 他の属性を見て UA が勝手に決めてよいのでしょうか (よくないと困るか)。

[15] >>8 の3つ目 frame 属性の値と解釈するべきって、 それ以外の解釈は明らかに SGML 違反なのですから、 SGML 応用たる HTML の仕様書が認めちゃいかんと思うのですがねぇ。 (名無しさん)

[27] HTML 4 DTD の注釈 (参考) には

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])

  • [9] <TABLE border="2"> == <TABLE border="2" frame="border" rules="all"> (HTML 4 仕様書より)
  • [10] <TABLE border> == <TABLE frame="border" rules="all"> (HTML 4 仕様書より)

[14]

<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 仕様書より)

[13]

<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 #

table 要素の開始タグの値 border (HTML, XHTML 1)

[7] HTMLtable 要素の開始タグには、 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">

と内部的に扱われているようです。

HTML 5でもそうするつもりだと前にIanが書いていた気もします。 (名無しさん)

object 要素・img 要素 border 属性 (HTML, XHTML 1)

[16] HTMLobject 要素および img 要素の border 属性は、 物体画像を囲むの太さを指定します。

[17] 仕様書:

[25] HTML 4 DTD の注釈 (参考) には link border width と書かれています。 (名無しさん [sage])

代替

[18] この属性は HTML 4 で非推奨とされています。 スタイル・シートで代替できます。

[19] CSS の場合、 border 系特性群で HTML よりも遥かに詳細な指定ができます。

属性値

[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 が実装しました。

画像の周りの枠線太さが指定できるとされていました。 リンクの一部たる画像border0 にすると利用者が混乱する虞があると警告されていました。

メモ

[33] 入力フォームとマルチメディアを活用する (2007-06-10 21:04:18 +09:00 版) <http://www.atmarkit.co.jp/fmobile/rensai/xhtml04/xhtml04.html>

HTMLの<img>タグとまったく同様。ただしモバイル向けの場合、リンクを張ったときには「border="1"」にして、利用者にリンクを張っている画像であることを告知するのが暗黙の了解となっている。ピクチャー広告(通常のWebでいうバナー広告のこと。モバイルではこのように呼ぶことが多い)などの扱いに気を付けたい。

この連載は妄想が多いので本当かどうか知りませんが。