Living Standard — Last Updated 17 December 2024
table
要素Support in all current engines.
Support in all current engines.
caption
要素、0個以上のcolgroup
要素、任意でthead
要素、0個以上のtbody
要素または1個以上のtr
要素のいずれか、任意でtfoot
要素、任意で1つ以上のスクリプトサポート要素と混合される。[Exposed =Window ]
interface HTMLTableElement : HTMLElement {
[HTMLConstructor ] constructor ();
[CEReactions ] attribute HTMLTableCaptionElement ? caption ;
HTMLTableCaptionElement createCaption ();
[CEReactions ] undefined deleteCaption ();
[CEReactions ] attribute HTMLTableSectionElement ? tHead ;
HTMLTableSectionElement createTHead ();
[CEReactions ] undefined deleteTHead ();
[CEReactions ] attribute HTMLTableSectionElement ? tFoot ;
HTMLTableSectionElement createTFoot ();
[CEReactions ] undefined deleteTFoot ();
[SameObject ] readonly attribute HTMLCollection tBodies ;
HTMLTableSectionElement createTBody ();
[SameObject ] readonly attribute HTMLCollection rows ;
HTMLTableRowElement insertRow (optional long index = -1);
[CEReactions ] undefined deleteRow (long index );
// also has obsolete members
};
table
要素はテーブル形式で、複数の次元を持つデータを表す。
table
要素は、テーブルモデルに参加する。テーブルは、行、列、およびその子孫によって与えられるセルを持つ。行と列はグリッドを形成する。テーブルのセルは完全に重複することなく、グリッドをカバーしなければならない。
この適合性要件が満たされるかどうかを決定するための正確な規則は、テーブルモデルの説明に記載される。
著者は、複雑なテーブルをどのように解釈するかを記述する情報を提供するよう推奨される。そのような情報を提供する方法についての手引きは後述のとおりである。
テーブルは、レイアウトの補助として使用されてはならない。歴史的に、一部のウェブ著者は、自身のページのレイアウトを制御する方法としてHTMLのテーブルを誤用している。そのような文書から表形式のデータの抽出を試みるツールは極めて混乱する結果を得ることになるため、この使用法は不適合である。具体的に、スクリーンリーダーのようなアクセシビリティツールのユーザーは、テーブルがレイアウトに使用されるテーブルをもつページをナビゲートするのに非常に困難であることを見つける可能性が高い。
レイアウトに対してHTMLテーブルを使用する代わりに、CSSグリッドレイアウト、CSSフレキシブルボックスレイアウト("flexbox")、CSSマルチカラムレイアウト、CSSポジショニング、CSSテーブルモデルなど、さまざまな方法がある。[CSS]
テーブルは、理解しかつナビゲートするために複雑になることがある。ユーザーエージェントが(不適合な)レイアウトテーブルとしてテーブルを分類していない限り、ユーザーの手助けをするために、ユーザーエージェントは、テーブルのセルを互いに明確に示すべきである。
著者および実装者は、ユーザーに対してテーブルをより簡単に移動するために、下記のテーブルデザインテクニックの使用を検討することを推奨する。
ユーザーエージェント、特に任意のコンテンツ上でテーブルの分析を行うものは、どのテーブルが実際にデータを含み、どのテーブルが単にレイアウトのために使用されているかを決定するためのヒューリスティックを見つけることを勧める。この仕様は、正確なヒューリスティックを定義しないが、以下が可能な指標として提案される:
Feature | Indication |
---|---|
値presentation をもつrole 属性の使用 | おそらくレイアウトテーブル |
不適合値0をもつ不適合border 属性の使用 | おそらくレイアウトテーブル |
値0をもつ不適合cellspacing およびcellpadding の使用 | おそらくレイアウトテーブル |
caption 、thead またはth 要素の使用 | おそらく非レイアウトテーブル |
headers およびscope 属性の使用 | おそらく非レイアウトテーブル |
0以外の値0をもつ不適合border 属性の使用 | おそらく非レイアウトテーブル |
CSSを使用して設定された明示的な可視ボーダー | おそらく非レイアウトテーブル |
summary 属性の使用 | よい指標ではない(歴史的にレイアウトと非レイアウトテーブルの両方は、この属性を与えられている) |
上記の提案が正しくないことが非常にありうる。Implementers are urged to provide feedback elaborating on their experiences with trying to create a layout table detection heuristic.
table
要素が(不適合)summary
属性を持ち、かつユーザーエージェントがレイアウトテーブルとしてテーブルに分類されていない場合、ユーザーエージェントは、ユーザーにその属性のコンテンツを報告してもよい。
table.caption [ = value ]
Support in all current engines.
テーブルのcaption
要素を返す。
caption
要素を置き換えるために、設定が可能である。
caption = table.createCaption()
HTMLTableElement/createCaption
Support in all current engines.
表がcaption
要素を持つことを保証し、それを返す。
table.deleteCaption()
HTMLTableElement/deleteCaption
Support in all current engines.
表がcaption
要素を持たないことを保証する。
table.tHead [ = value ]
Support in all current engines.
テーブルのthead
要素を返す。
thead
要素を置き換えるために、設定が可能である。新しい値がthead
要素でない場合、"HierarchyRequestError
" DOMException
を投げる。
thead = table.createTHead()
Support in all current engines.
表がthead
要素を持つことを保証し、それを返す。
table.deleteTHead()
Support in all current engines.
表がthead
要素を持たないことを保証する。
table.tFoot [ = value ]
Support in all current engines.
テーブルのtfoot
要素を返す。
tfoot
要素を置き換えるために、設定が可能である。新しい値がtfoot
要素でない場合、"HierarchyRequestError
" DOMException
を投げる。
tfoot = table.createTFoot()
Support in all current engines.
表がtfoot
要素を持つことを保証し、それを返す。
table.deleteTFoot()
Support in all current engines.
表がtfoot
要素を持たないことを保証する。
table.tBodies
Support in all current engines.
テーブルのtbody
要素のHTMLCollection
を返す。
tbody = table.createTBody()
Support in all current engines.
tbody
要素を作成してテーブルに挿入し、それを返す。
table.rows
Support in all current engines.
テーブルのtr
要素のHTMLCollection
を返す。
tr = table.insertRow([ index ])
Support in all current engines.
必要であれば、tbody
要素とともに、tr
要素を作成し、引数で指定された位置にあるテーブルへそれらを挿入して、tr
を返す。
位置は、テーブルの行を基準にする。引数が省略されている場合、デフォルトでインデックス-1は、テーブルの末尾に挿入することと同じである。
指定された位置が-1未満または行数より大きい場合、"IndexSizeError
" DOMException
を投げる。
table.deleteRow(index)
Support in all current engines.
テーブルで指定された位置とともにtr
要素を削除する。
位置は、テーブルの行を基準にする。インデックス-1は、テーブルの最後の行を削除するのと同じである。
指定された位置が-1未満または最終行のインデックスよりも大きい、または行が存在しない場合、"IndexSizeError
" DOMException
を投げる。
In all of the following attribute and method definitions, when an element is to be table-created, that means to create an element given the table
element's node document, the given local name, and the HTML namespace.
取得時に、caption
IDL属性は、もしあればtable
要素の最初のcaption
要素の子を返さなければならず、そうでなければnullを返さなければならない。設定時に、もしあれば、table
要素の最初のcaption
要素の子は除去されなければならず、nullでない場合、新しい値はtable
要素の最初のノードとして挿入されなければならない。
The createCaption()
method must return the first caption
element child of the table
element, if any; otherwise a new caption
element must be table-created, inserted as the first node of the table
element, and then returned.
もしあれば、deleteCaption()
メソッドは、table
要素の最初のcaption
要素の子を削除しなければならない。
取得時にもしあれば、tHead
IDL属性は、table
要素の最初のthead
要素の子を返さなければならず、そうでなければ、nullを返さなければならない。取得時に、新しい値がnullまたはthead
要素である場合、table
要素の最初のthead
要素の子は、もしあれば、除去されなければならず、nullでない場合、新しい値は、caption
要素でもcolgroup
要素でもないtable
要素における、またはもしあればそのような要素が存在しない場合にテーブルの最後で最初の要素の直前に挿入されなければならない。新しい値がnullでもthead
要素でもない場合、代わりに"HierarchyRequestError
" DOMException
が投げられなければならない。
The createTHead()
method must return the first thead
element child of the table
element, if any; otherwise a new thead
element must be table-created and inserted immediately before the first element in the table
element that is neither a caption
element nor a colgroup
element, if any, or at the end of the table if there are no such elements, and then that new element must be returned.
もしあれば、deleteTHead()
メソッドは、table
要素の最初のthead
要素の子を削除しなければならない。
The tFoot
IDL attribute must return, on getting, the first tfoot
element child of the table
element, if any, or null otherwise. On setting, if the new value is null or a tfoot
element, the first tfoot
element child of the table
element, if any, must be removed, and the new value, if not null, must be inserted at the end of the table. If the new value is neither null nor a tfoot
element, then a "HierarchyRequestError
" DOMException
must be thrown instead.
The createTFoot()
method must return the first tfoot
element child of the table
element, if any; otherwise a new tfoot
element must be table-created and inserted at the end of the table, and then that new element must be returned.
もしあれば、deleteTFoot()
メソッドは、table
要素の最初のtfoot
要素の子を削除しなければならない。
The tBodies
attribute must return an HTMLCollection
rooted at the table
node, whose filter matches only tbody
elements that are children of the table
element.
The createTBody()
method must table-create a new tbody
element, insert it immediately after the last tbody
element child in the table
element, if any, or at the end of the table
element if the table
element has no tbody
element children, and then must return the new tbody
element.
rows
属性は、フィルターがtable
要素のtr
自身の子である、table
要素の子、またはthead
要素、tfoot
、またはtbody
要素の子のいずれかであるtr
要素にのみマッチする、table
ノードでルートになるHTMLCollection
を返さなければならない。コレクション内の要素は、ツリー順で、親がthead
要素であるこれらの要素が最初に含まれ、その後に親がtable
またはtbody
要素のいずれかであるこれら要素が再度ツリー順で続き、依然としてツリー順に、親がtfoot
要素であるこれらの要素によって最終的に続くように順序づけされなければならない。
insertRow(index)
メソッドの動作は、tableの状態に依存する。このメソッドが呼び出される場合、メソッドは、テーブルの状態とindex引数を記述する条件の次のリストにおける最初の項目で要求されるように動作しなければならない:
rows
collection:IndexSizeError
" DOMException
.rows
collection has zero elements in it, and the table
has no tbody
elements in it:tbody
element, then table-create a tr
element, then append the tr
element to the tbody
element, then append the tbody
element to the table
element, and finally return the tr
element.rows
collection has zero elements in it:tr
element, append it to the last tbody
element in the table, and return the tr
element.rows
collection:tr
element, and append it to the parent of the last tr
element in the rows
collection. Then, the newly created tr
element must be returned.tr
element, insert it immediately before the indexth tr
element in the rows
collection, in the same parent, and finally must return the newly created tr
element.When the deleteRow(index)
method is called, the user agent must run the following steps:
If index is less than −1 or greater than or equal to the number of elements in the rows
collection, then throw an "IndexSizeError
" DOMException
.
If index is −1, then remove the last element in the rows
collection from its parent, or do nothing if the rows
collection is empty.
Otherwise, remove the indexth element in the rows
collection from its parent.
これは、数独パズルをマークアップするために使用されているテーブルの例である。そのようなテーブルで必要のない、ヘッダーの欠如を観察する。
< style >
# sudoku { border-collapse : collapse ; border : solid thick ; }
# sudoku colgroup , table # sudoku tbody { border : solid medium ; }
# sudoku td { border : solid thin ; height : 1.4 em ; width : 1.4 em ; text-align : center ; padding : 0 ; }
</ style >
< h1 > Today's Sudoku</ h1 >
< table id = "sudoku" >
< colgroup >< col >< col >< col >
< colgroup >< col >< col >< col >
< colgroup >< col >< col >< col >
< tbody >
< tr > < td > 1 < td > < td > 3 < td > 6 < td > < td > 4 < td > 7 < td > < td > 9
< tr > < td > < td > 2 < td > < td > < td > 9 < td > < td > < td > 1 < td >
< tr > < td > 7 < td > < td > < td > < td > < td > < td > < td > < td > 6
< tbody >
< tr > < td > 2 < td > < td > 4 < td > < td > 3 < td > < td > 9 < td > < td > 8
< tr > < td > < td > < td > < td > < td > < td > < td > < td > < td >
< tr > < td > 5 < td > < td > < td > 9 < td > < td > 7 < td > < td > < td > 1
< tbody >
< tr > < td > 6 < td > < td > < td > < td > 5 < td > < td > < td > < td > 2
< tr > < td > < td > < td > < td > < td > 7 < td > < td > < td > < td >
< tr > < td > 9 < td > < td > < td > 8 < td > < td > 2 < td > < td > < td > 5
</ table >
1行目のヘッダーと1列目のヘッダーをもつセルの1つ以上のグリッドからなるテーブルに対して、および一般に読者がコンテンツを理解する難しさがあるかもしれない場所で任意のテーブルに対して、著者はテーブルを導入する説明情報を含めるべきである。この情報はすべてのユーザーに対して有用であるが、たとえばスクリーンリーダーのユーザーなど、テーブルを見ることができないユーザーに対して特に有用である。
そのような説明情報は、テーブルの目的を紹介し、その基本的なセル構造を要約し、傾向やパターンを強調し、および一般にどのようにテーブルを使用するかをユーザーに教えるべきである。
たとえば、次の表において:
Negative | Characteristic | Positive |
---|---|---|
Sad | Mood | Happy |
Failing | Grade | Passing |
"左側の列の否定的な側面および右側の列に肯定的な側面とともに、特性は2列目に示されている"のような何かを、表がレイアウトする方法を示す説明が恩恵を受けるかもしれない。
この情報を含めるためのさまざまな方法がある:
< p > In the following table, characteristics are given in the second
column, with the negative side in the left column and the positive
side in the right column.</ p >
< table >
< caption > Characteristics with positive and negative sides</ caption >
< thead >
< tr >
< th id = "n" > Negative
< th > Characteristic
< th > Positive
< tbody >
< tr >
< td headers = "n r1" > Sad
< th id = "r1" > Mood
< td > Happy
< tr >
< td headers = "n r2" > Failing
< th id = "r2" > Grade
< td > Passing
</ table >
caption
で< table >
< caption >
< strong > Characteristics with positive and negative sides.</ strong >
< p > Characteristics are given in the second column, with the
negative side in the left column and the positive side in the right
column.</ p >
</ caption >
< thead >
< tr >
< th id = "n" > Negative
< th > Characteristic
< th > Positive
< tbody >
< tr >
< td headers = "n r1" > Sad
< th id = "r1" > Mood
< td > Happy
< tr >
< td headers = "n r2" > Failing
< th id = "r2" > Grade
< td > Passing
</ table >
caption
、details
要素で< table >
< caption >
< strong > Characteristics with positive and negative sides.</ strong >
< details >
< summary > Help</ summary >
< p > Characteristics are given in the second column, with the
negative side in the left column and the positive side in the right
column.</ p >
</ details >
</ caption >
< thead >
< tr >
< th id = "n" > Negative
< th > Characteristic
< th > Positive
< tbody >
< tr >
< td headers = "n r1" > Sad
< th id = "r1" > Mood
< td > Happy
< tr >
< td headers = "n r2" > Failing
< th id = "r2" > Grade
< td > Passing
</ table >
figure
で< figure >
< figcaption > Characteristics with positive and negative sides</ figcaption >
< p > Characteristics are given in the second column, with the
negative side in the left column and the positive side in the right
column.</ p >
< table >
< thead >
< tr >
< th id = "n" > Negative
< th > Characteristic
< th > Positive
< tbody >
< tr >
< td headers = "n r1" > Sad
< th id = "r1" > Mood
< td > Happy
< tr >
< td headers = "n r2" > Failing
< th id = "r2" > Grade
< td > Passing
</ table >
</ figure >
figure
のfigcaption
で< figure >
< figcaption >
< strong > Characteristics with positive and negative sides</ strong >
< p > Characteristics are given in the second column, with the
negative side in the left column and the positive side in the right
column.</ p >
</ figcaption >
< table >
< thead >
< tr >
< th id = "n" > Negative
< th > Characteristic
< th > Positive
< tbody >
< tr >
< td headers = "n r1" > Sad
< th id = "r1" > Mood
< td > Happy
< tr >
< td headers = "n r2" > Failing
< th id = "r2" > Grade
< td > Passing
</ table >
</ figure >
必要に応じて著者はまた、他の技術または上記の技術の組み合わせを使用してもよい。
もちろん、最良の選択肢は、テーブルがレイアウトされる理由を説明する記述を書くことよりもむしろ、一切の説明を必要としないようにテーブルを調整することである。
上記の例で使用されるテーブルの場合、ヘッダーが上と左側に来るように、テーブルの単純な再配置は、headers
属性の使用の要求を削除するだけでなく、説明の要求を削除する。
< table >
< caption > Characteristics with positive and negative sides</ caption >
< thead >
< tr >
< th > Characteristic
< th > Negative
< th > Positive
< tbody >
< tr >
< th > Mood
< td > Sad
< td > Happy
< tr >
< th > Grade
< td > Failing
< td > Passing
</ table >
良いテーブルデザインは、テーブルがより読みやすく、使いやすくするための鍵となる。
視覚メディアにおいて、列と行の境界を提供して行の背景を交互にすることは、複雑なテーブルをより読みやすくするために非常に効果的である。
大量のコンテンツを持つテーブルに対して、特に、ユーザーエージェントがボーダーをレンダリングしない状況において等幅フォントを使用することは、ユーザーにパターンに気づくのを助けることができる。(残念ながら、歴史的な理由により、テーブルのボーダーをレンダリングしないことは、共通のデフォルトである。)
音声メディアにおいて、テーブルのセルは、セルの内容を読む前に対応するヘッダーを報告することによって、およびソースの順序でテーブルの内容全体をシリアライズするのではなく、むしろグリッド方式でテーブルをナビゲートできるようにすることで区別できる。
著者は、これらの効果を達成するためにCSSを使用するよう推奨される。
ユーザーエージェントは、ページがCSSを使用せずかつテーブルがレイアウトテーブルに分類されないときはいつでも、このテクニックを使用してテーブルをレンダリングすることが勧められる。
caption
要素Support in all current engines.
Support in all current engines.
table
要素の最初の子として。table
要素の子孫を除く。caption
要素の直後がASCII空白文字またはコメントでない場合、caption
要素の終了タグは省略することができる。[Exposed =Window ]
interface HTMLTableCaptionElement : HTMLElement {
[HTMLConstructor ] constructor ();
// also has obsolete members
};
要素が親を持ち、かつ、それがtable
要素である場合、caption
要素は、その親であるtable
のタイトルを表す。
table
要素がfigure
要素の中でfigcaption
以外には唯一のコンテンツである場合、caption
要素はfigcaption
を選択して省略されるべきである。
キャプションは、テーブルに対するコンテキストを導入でき、大幅に理解しやすくする。
たとえば、次のテーブルを考えてみる:
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
理論的に考えれば、このテーブルは明確でない。しかし、キャプションで(本文での参照のために)テーブルの番号を与え、その使用方法を説明することで、さらに理解できるようになる:
< caption >
< p > Table 1.
< p > This table shows the total score obtained from rolling two
six-sided dice. The first row represents the value of the first die,
the first column the value of the second die. The total is given in
the cell that corresponds to the values of the two dice.
</ caption >
以下は、より多くのコンテキストをユーザーに提供する:
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
colgroup
要素Support in all current engines.
Support in all current engines.
table
要素の子として、任意のcaption
要素の後かつ任意のthead
、tbody
、tfoot
、およびtr
要素の前。span
属性が存在する場合:Nothing。span
属性が存在しない場合:0個以上のcol
要素およびtemplate
要素。colgroup
要素内の最初の文がcol
要素である場合、かつ終了タグが省略されている別のcolgroup
要素の直前に存在しない場合、colgroup
要素の開始タグは省略することができる。(要素が空である場合、省略できない。)colgroup
要素の直後がASCII空白文字またはコメントでない場合、colgroup
要素の終了タグは省略することができる。span
— 要素がまたがる列の数[Exposed =Window ]
interface HTMLTableColElement : HTMLElement {
[HTMLConstructor ] constructor ();
[CEReactions ] attribute unsigned long span ;
// also has obsolete members
};
この要素がtable
要素の親を持つ場合、colgroup
要素は、親であるtable
で1つ以上の列のグループを表す。
colgroup
要素が一切col
要素を含まない場合、要素は、値が0より大きくかつ1000以下の妥当な負でない整数でなければならない、指定されたspan
コンテンツ属性を持ってもよい。
colgroup
要素および要素のspan
は、テーブルモデルに参加する。
span
IDL属性は、同じ名前のコンテンツ属性を反映しなければならない。It is clamped to the range [1, 1000], and its default value is 1.
col
要素Support in all current engines.
span
属性を持たないcolgroup
要素の子として。span
— 要素がまたがる列の数HTMLTableColElement
、colgroup
要素の場合と同様。col
要素が親を持ち、それがtable
要素が親であるcolgroup
要素自体である場合は、col
要素は、そのcolgroup
によって表される列グループ内の1つ以上の列を表す。
要素は、値が0より大きくかつ1000以下の妥当な負でない整数でなければならない、指定されたspan
コンテンツ属性を持ってもよい。
col
要素および要素のspan
は、テーブルモデルに参加する。
tbody
要素Support in all current engines.
Support in all current engines.
table
要素の子として、任意のcaption
、colgroup
、およびthead
要素の後、ただしtable
要素の子であるtr
が一切存在しない場合のみに限る。tr
要素およびスクリプトサポート要素。tbody
要素内の最初の文がtr
要素である場合、かつこの要素が終了タグが省略されているtbody
、thead
、またはtfoot
要素の直前に存在しない場合、tbody
要素の開始タグは省略することができる。(要素が空である場合、省略できない。)tbody
要素が別のtbody
またはtfoot
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、tbody
要素の終了タグは省略することができる。[Exposed =Window ]
interface HTMLTableSectionElement : HTMLElement {
[HTMLConstructor ] constructor ();
[SameObject ] readonly attribute HTMLCollection rows ;
HTMLTableRowElement insertRow (optional long index = -1);
[CEReactions ] undefined deleteRow (long index );
// also has obsolete members
};
HTMLTableSectionElement
インターフェイスは、thead
要素とtfoot
要素にも使用される。
tbody
要素がtable
である親を持つ場合、tbody
要素は、親table
要素に対しデータの本体を構成する行のブロックを表す。
tbody.rows
テーブルセクションのtr
要素のHTMLCollection
を返す。
tr = tbody.insertRow([ index ])
tr
要素を作成し、引数で指定された場所でテーブルセクションにこれを挿入し、tr
を返す。
位置は、テーブルの行を基準にする。引数が省略されている場合、デフォルトでインデックス-1は、テーブルセクションの末尾に挿入することと同じである。
指定された位置が-1未満または行数より大きい場合、"IndexSizeError
" DOMException
を投げる。
tbody.deleteRow(index)
テーブルセクションで指定された位置とともにtr
要素を削除する。
位置は、テーブルの行を基準にする。インデックス-1は、テーブルの最後の行を削除するのと同じである。
指定された位置が-1未満または最終行のインデックスよりも大きい、または行が存在しない場合、"IndexSizeError
" DOMException
を投げる。
The rows
attribute must return an HTMLCollection
rooted at this element, whose filter matches only tr
elements that are children of this element.
The insertRow(index)
method must act as follows:
If index is less than −1 or greater than the number of elements in the rows
collection, throw an "IndexSizeError
" DOMException
.
Let table row be the result of creating an element given this element's node document, "tr
", and the HTML namespace.
If index is −1 or equal to the number of items in the rows
collection, then append table row to this element.
Otherwise, insert table row as a child of this element, immediately before the indexth tr
element in the rows
collection.
Return table row.
The deleteRow(index)
method must, when invoked, act as follows:
If index is less than −1 or greater than or equal to the number of elements in the rows
collection, then throw an "IndexSizeError
" DOMException
.
If index is −1, then remove the last element in the rows
collection from this element, or do nothing if the rows
collection is empty.
Otherwise, remove the indexth element in the rows
collection from this element.
thead
要素Support in all current engines.
table
要素の子として、任意のcaption
およびcolgroup
要素の後、および任意のtbody
、tfoot
、およびtr
要素の前、ただしtable
の子であるthead
要素以外である場合のみに限る。tr
要素およびスクリプトサポート要素。thead
要素がtbody
またはtfoot
要素の直後に存在する場合、thead
要素の終了タグは省略することができる。tbody
要素に対して定義されるものとして、HTMLTableSectionElement
を使用する。 thead
要素 は、 thead
要素が親を持ち、かつそれがtable
ある場合、親table
要素の列ラベル(ヘッダー)および補助的な非ヘッダーセルで構成される行のブロックを表す。
この例は、thead
要素が使われる様子を示す。thead
要素におけるth
とtd
の両方の使い方に注意する。1行目はヘッダーであり、2行目は表に記入する方法の説明である。
< table >
< caption > School auction sign-up sheet </ caption >
< thead >
< tr >
< th >< label for = e1 > Name</ label >
< th >< label for = e2 > Product</ label >
< th >< label for = e3 > Picture</ label >
< th >< label for = e4 > Price</ label >
< tr >
< td > Your name here
< td > What are you selling?
< td > Link to a picture
< td > Your reserve price
< tbody >
< tr >
< td > Ms Danus
< td > Doughnuts
< td >< img src = "https://example.com/mydoughnuts.png" title = "Doughnuts from Ms Danus" >
< td > $45
< tr >
< td >< input id = e1 type = text name = who required form = f >
< td >< input id = e2 type = text name = what required form = f >
< td >< input id = e3 type = url name = pic form = f >
< td >< input id = e4 type = number step = 0.01 min = 0 value = 0 required form = f >
</ table >
< form id = f action = "/auction.cgi" >
< input type = button name = add value = "Submit" >
</ form >
tfoot
要素Support in all current engines.
table
要素の子として、任意のcaption
、colgroup
、thead
、tbody
およびtr
要素の後、ただしtable
の子であるtfoot
要素以外である場合のみに限る。tr
要素およびスクリプトサポート要素。tfoot
要素の終了タグは省略することができる。tbody
要素に対して定義されるものとして、HTMLTableSectionElement
を使用する。tfoot
要素がtable
である親を持つ場合、tfoot
要素は、親table
要素に対し列の合計(フッター)を構成する行のブロックを表す。
tr
要素Support in all current engines.
Support in all current engines.
thead
要素の子として。tbody
要素の子として。tfoot
要素の子として。table
要素の子として、任意のcaption
、colgroup
、およびthead
要素の後、ただしtable
要素の子であるtbody
が一切存在しない場合に限る。td
、th
、およびスクリプトサポート要素。tr
要素が別のtr
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、tr
要素の終了タグは省略することができる。[Exposed =Window ]
interface HTMLTableRowElement : HTMLElement {
[HTMLConstructor ] constructor ();
readonly attribute long rowIndex ;
readonly attribute long sectionRowIndex ;
[SameObject ] readonly attribute HTMLCollection cells ;
HTMLTableCellElement insertCell (optional long index = -1);
[CEReactions ] undefined deleteCell (long index );
// also has obsolete members
};
tr.rowIndex
Support in all current engines.
テーブルのrows
リストで行の位置を返す。
要素がテーブル内でない場合、-1を返す。
tr.sectionRowIndex
テーブルセクションのrows
リストで行の位置を返す。
要素がテーブルセクション内でない場合、-1を返す。
tr.cells
行のtd
およびth
要素のHTMLCollection
を返す。
cell = tr.insertCell([ index ])
HTMLTableRowElement/insertCell
Support in all current engines.
td
要素を作成し、引数で指定された場所でテーブル行にこれを挿入し、td
を返す。
位置は、行のセルを基準にする。引数が省略されている場合、デフォルトでインデックス-1は、行の末尾に挿入することと同じである。
指定された位置が-1未満またはセル数より大きい場合、"IndexSizeError
" DOMException
を投げる。
tr.deleteCell(index)
位置は、行のセルを基準にする。インデックス-1は、行の最後のセルを削除するのと同じである。
指定された位置が-1未満または最終セルのインデックスよりも大きい、またはセルが存在しない場合、"IndexSizeError
" DOMException
を投げる。
The rowIndex
attribute must, if this element has a parent table
element, or a parent tbody
, thead
, or tfoot
element and a grandparent table
element, return the index of this tr
element in that table
element's rows
collection. If there is no such table
element, then the attribute must return −1.
The sectionRowIndex
attribute must, if this element has a parent table
, tbody
, thead
, or tfoot
element, return the index of the tr
element in the parent element's rows
collection (for tables, that's HTMLTableElement
's rows
collection; for table sections, that's HTMLTableSectionElement
's rows
collection). If there is no such parent element, then the attribute must return −1.
The cells
attribute must return an HTMLCollection
rooted at this tr
element, whose filter matches only td
and th
elements that are children of the tr
element.
The insertCell(index)
method must act as follows:
If index is less than −1 or greater than the number of elements in the cells
collection, then throw an "IndexSizeError
" DOMException
.
Let table cell be the result of creating an element given this tr
element's node document, "td
", and the HTML namespace.
If index is equal to −1 or equal to the number of items in cells
collection, then append table cell to this tr
element.
Otherwise, insert table cell as a child of this tr
element, immediately before the indexth td
or th
element in the cells
collection.
Return table cell.
The deleteCell(index)
method must act as follows:
If index is less than −1 or greater than or equal to the number of elements in the cells
collection, then throw an "IndexSizeError
" DOMException
.
If index is −1, then remove the last element in the cells
collection from its parent, or do nothing if the cells
collection is empty.
Otherwise, remove the indexth element in the cells
collection from its parent.
td
要素Support in all current engines.
Support in all current engines.
tr
要素の子として。td
要素が別のtd
またはth
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、td
要素の終了タグは省略することができる。colspan
— セルがまたがる列の数rowspan
— セルがまたがる行の数headers
— 該当セルに対するヘッダーセル[Exposed =Window ]
interface HTMLTableCellElement : HTMLElement {
[HTMLConstructor ] constructor ();
[CEReactions ] attribute unsigned long colSpan ;
[CEReactions ] attribute unsigned long rowSpan ;
[CEReactions ] attribute DOMString headers ;
readonly attribute long cellIndex ;
[CEReactions ] attribute DOMString scope ; // only conforming for th elements
[CEReactions ] attribute DOMString abbr ; // only conforming for th elements
// also has obsolete members
};
HTMLTableCellElement
インターフェイスはまた、th
要素によっても使用される。
td
要素および要素のcolspan
、rowspan
、およびheaders
属性は、テーブルモデルに参加する。
特に非視覚環境または2Dグリッドが非現実的であるようなテーブルを表示する場合に、ユーザーエージェントは、セルのコンテンツをレンダリングするときにセルのユーザーコンテキストを与えてもよい。たとえば、テーブルモデル内の位置を与える、または(ヘッダーセルを割り当てるためのアルゴリズムによって決定されるような)セルのヘッダーセルを一覧表示するなど。セルのヘッダーセルが表示されてされている場合、もしあれば、ユーザーエージェントは、ヘッダーセル自身のコンテンツの代わりに、それらのヘッダーセルのabbr
属性の値を使用してもよい。
この例において、編集可能なセルのグリッド(基本的にシンプルなスプレッドシート)からなるウェブアプリケーションの断片を見てみる。セルの1つは、その上のセルの合計を表示するように構成されている。3つは、td
要素の代わりにth
要素を使用する見出しとしてマークされている。スクリプトは、合計を維持するためにこれらの要素にイベントハンドラーを結びつける。
< table >
< tr >
< th >< input value = "Name" >
< th >< input value = "Paid ($)" >
< tr >
< td >< input value = "Jeff" >
< td >< input value = "14" >
< tr >
< td >< input value = "Britta" >
< td >< input value = "9" >
< tr >
< td >< input value = "Abed" >
< td >< input value = "25" >
< tr >
< td >< input value = "Shirley" >
< td >< input value = "2" >
< tr >
< td >< input value = "Annie" >
< td >< input value = "5" >
< tr >
< td >< input value = "Troy" >
< td >< input value = "5" >
< tr >
< td >< input value = "Pierce" >
< td >< input value = "1000" >
< tr >
< th >< input value = "Total" >
< td >< output value = "1060" >
</ table >
th
要素Support in all current engines.
tr
要素の子として。header
、footer
、セクショニングコンテンツ、またはヘディングコンテンツの子孫を除く。th
要素が別のtd
またはth
要素の直後に存在する場合、または親要素に追加のコンテンツが存在しない場合、th
要素の終了タグは省略することができる。colspan
— セルがまたがる列の数rowspan
— セルがまたがる行の数headers
— 該当セルに対するヘッダーセルscope
— ヘッダーセルがどのセルに適用するかを指定するabbr
— 他のコンテキスト内のセルを参照するときにヘッダーセルに使用する代替ラベルtd
要素に対して定義されるものとして、HTMLTableCellElement
を使用する。th
要素は、指定されたscope
コンテンツ属性を持ってもよい。
scope
属性は、次のキーワードと状態を持つ列挙属性である:
キーワード | 状態 | 概要 |
---|---|---|
row | row | ヘッダーセルは、同じ行の後続セルの一部に適用される。 |
col | column | ヘッダーセルは、同じ列の後続セルの一部に適用される。 |
rowgroup | row group | ヘッダーセルは、行グループの残りのすべてのセルに適用される。 |
colgroup | column group | ヘッダーセルは、列グループの残りのすべてのセルに適用される。 |
この属性の欠損値のデフォルトと不正値のデフォルトは両方ともauto状態である。(この状態では、ヘッダーセルはコンテキストに基づいて選択された一連のセルに適用される。)
th
要素のscope
属性は、row group状態であってはならず、要素がrow groupに固定されない場合、column group状態になってはならない。
th
要素は、指定されたabbr
コンテンツ属性を持ってもよい。その値は、(たとえばデータセルに適用するヘッダーセルを記述する場合など)他のコンテキスト内のセルを参照するときに使用されるヘッダーセルの代替ラベルでなければならない。通常これは、完全なヘッダーセルの略語であるが、拡大または単なる別の言い回しでも構わない。
th
要素および要素のcolspan
、rowspan
、headers
およびscope
属性は、テーブルモデルに参加する。
次の例は、scope
属性のrowgroup
値がヘッダーセルが適用するデータセルにどのように影響するかを示す。
ここで、テーブルを示すマークアップ断片は、次のとおり:
< table >
< thead >
< tr > < th > ID < th > Measurement < th > Average < th > Maximum
< tbody >
< tr > < td > < th scope = rowgroup > Cats < td > < td >
< tr > < td > 93 < th > Legs < td > 3.5 < td > 4
< tr > < td > 10 < th > Tails < td > 1 < td > 1
< tbody >
< tr > < td > < th scope = rowgroup > English speakers < td > < td >
< tr > < td > 32 < th > Legs < td > 2.67 < td > 4
< tr > < td > 35 < th > Tails < td > 0.33 < td > 1
</ table >
これは、次の表をもたらす:
ID | Measurement | Average | Maximum |
---|---|---|---|
Cats | |||
93 | Legs | 3.5 | 4 |
10 | Tails | 1 | 1 |
English speakers | |||
32 | Legs | 2.67 | 4 |
35 | Tails | 0.33 | 1 |
最初の行のヘッダーはすべて、その列の行まで直接適用される。
scope
属性を持つヘッダーは、最初の列のセル以外の行グループ内のすべてのセルに適用される。
残りのヘッダーは右側のセルにのみ適用される。
td
とth
要素の共通属性td
およびth
要素は、colspan
コンテンツ属性を指定してもよい。その値は、0より大きくかつ1000以下の妥当な負でない整数を指定しなければならない。
td
およびth
要素には、rowspan
コンテンツ属性を指定指定してもよい。その値は、65534以下の妥当な負でない整数でなければならない。この属性の場合、値0は、セルが行グループ内の残りのすべての行にまたがることを意味する。
これらの属性は、セルがまたがるようにそれぞれの列と行の数を与える。この属性は、テーブルモデルの記述で説明されるような、セルに重なるために使用されてはならない。
td
とth
要素は、指定されたheaders
コンテンツ属性を持ってもよい。headers
属性が指定される場合、順不同の一意な空白区切りトークンの集合からなる文字列を含まなければならず、他のトークンと同一のものはなく、それぞれがtdまたはth要素と同じテーブルに参加しているth要素のIDの値を持たなければならず、それぞれが、(テーブルモデルによって定義されるように)td
またはth
要素と同じテーブルに参加しているth
要素のIDの値を持たなければならない。
IDをもつth
要素のidは、値がそれらのトークンID idの1つとして含むheaders
属性を持つ同じテーブルですべてのtd
とth
要素によるdirectly targetedといわれる。AがBに直接目標とされる、または要素Bによって要素C自体が目標とされ、かつ要素AがCによって直接目標とされるかのいずれかの場合、th
要素Aはth
またはtd
要素Bの目標にされるといわれる。
th
要素は、それ自体が目標とならない。
colspan
、rowspan
、およびrowspan
属性は、テーブルモデルに参加する。
cell.cellIndex
行のcells
リストでセルの位置を返す。より前のセルが複数の行または列をカバーするかもしれないので、これは必ずしもテーブルにおけるセルのx方向の位置に対応しない。
要素が行にない場合、-1を返す。
colSpan
IDL属性は、colspan
コンテンツ属性を反映しなければならない。It is clamped to the range [1, 1000], and its default value is 1.
rowSpan
IDL属性は、rowspan
コンテンツ属性を反映しなければならない。It is clamped to the range [0, 65534], and its default value is 1.
headers
IDL属性は、同じ名前のコンテンツ属性を反映しなければならない。
要素が親tr
要素を持つ場合、cellIndex
IDL属性は、親要素のcells
コレクションにおけるセルの要素のインデックスを返さなければならない。If there is no such parent element, then the attribute must return −1.
scope
IDL属性は、既知の値に制限され、同じ名前のコンテンツ属性を反映しなければならない。
abbr
IDL属性は、同じ名前のコンテンツ属性を反映しなければならない。
さまざまなテーブル要素およびそのコンテンツ属性は、テーブルモデルを協力して定義する。
テーブルは、座標(x, y)をもつスロットの二次元グリッド上に整列されるセルからなる。グリッドは有限であり、空または1つ以上のいずれかのスロットを持つ。グリッドが1つ以上のスロットを持つ場合、x座標は常に0 ≤ x < xwidthの範囲にあり、y座標は常に0 ≤ y < yheightの範囲にある。xwidthとyheightのいずれかまたは両方が0である場合、テーブルは空である(何のスロットを持たない)。テーブルは、table
要素に対応する。
A cell is a set of slots anchored at a slot (cellx, celly), and with a particular width and height such that the cell covers all the slots with coordinates (x, y) where cellx ≤ x < cellx+width and celly ≤ y < celly+height. Cells can either be data cells or header cells. Data cells correspond to td
elements, and header cells correspond to th
elements. 両方の種類のセルは、0個以上の関連するヘッダーセルを持つことができる。
特定のエラーの場合、2つのセルが同一のスロットを占有することは可能である。
A row is a complete set of slots from x=0 to x=xwidth-1, for a particular value of y. Rows usually correspond to tr
elements, though a row group can have some implied rows at the end in some cases involving cells spanning multiple rows.
A column is a complete set of slots from y=0 to y=yheight-1, for a particular value of x. Columns can correspond to col
elements. In the absence of col
elements, columns are implied.
A row group is a set of rows anchored at a slot (0, groupy) with a particular height such that the row group covers all the slots with coordinates (x, y) where 0 ≤ x < xwidth and groupy ≤ y < groupy+height. Row groups correspond to tbody
, thead
, and tfoot
elements. 各行は、行グループに必須ではない。
列グループは、groupx ≤ x < groupx+widthおよび0 ≤ y < yheightの条件で座標(x, y)をもつすべてのスロットを覆うような固有のwidthをもつスロット(groupx, 0)に固定される列の集合である。列グループは、colgroup
に対応する。必ずしも各列は、列グループで必須でない。
行グループは、互いに重なることができない。同様に、列グループは、互いに重なることができない。
セルは、2つ以上の行グループに由来するスロットを占めることができない。しかし、セルが複数の列グループに存在することは可能である。1つのセルの一部を形成するすべてのスロットは、0または1個の行グループと0個以上の列グループの一部である。
セル、列、行、行グループ、列グループに加えて、テーブルは、関連するcaption
要素を持つことができる。これは、テーブルに見出し、または凡例を提供する。
テーブルモデルエラーは、table
要素およびその子孫によって表されるデータとのエラーである。文書は、テーブルモデルエラーを持ってはならない。
どの要素がテーブルにおいてどのスロットとtable
要素とを関連付けられたかを決定するため、テーブル(xwidthおよびyheight)の次元を決定するため、および任意のテーブルモデルエラーがあるかどうかを決定するために、ユーザーエージェントは次のアルゴリズムを使用しなければならない:
xwidthを0にする。
yheightを0にする。
the tableをtable
要素で表されるテーブルにする。xwidthおよびyheight変数は、the tableの寸法を与える。The table テーブルは、初めに空となる。
If the table
element has no children elements, then return the table (which will be empty).
the tableとtable
要素の最初のcaption
要素の子を関連付ける。そのような子が存在しない場合、テーブルは関連するcaption
要素を持たない。
current elementをtable
要素の最初の要素の子とする。
そのような次の子がないときにこのアルゴリズムにおける手順がtable
の次の子に前進するようにcurrent elementをいずれ要求する場合、このアルゴリズムの終わり近くに、ユーザーエージェントはendとラベル付けされた手順にジャンプしなければならない。
current elementが次の要素のいずれでもない間、table
の次の子にcurrent elementを進める:
current elementがcolgroup
である場合、次のサブ手順に従う:
Column groups:次の適切な場合に従ってcurrent elementを処理する:
col
要素の子を持つ場合次の手順に従う:
xstartにxwidthの値を持たせる。
Columns:current columnのcol
要素がspan
属性を持つ場合、非負整数を解析するための規則を使用して属性の値を解析する。
解析値の結果がエラーまたは0でない場合、spanをその値にする。
そうでなければ、col
要素がspan
属性を持たない、または属性値の解析の試みがエラーまたは0をもたらす場合、spanを1にする。
If span is greater than 1000, let it be 1000 instead.
spanでxwidthを増やす。
current columnがcolgroup
要素の最後のcol
要素の子でない場合、current columnをcolgroup
要素の次のcol
要素の子とし、columnsにラベル付けされた手順に戻る。
Let all the last columns in the table from x=xstart to x=xwidth-1 form a new column group, anchored at the slot (xstart, 0), with width xwidth-xstart, corresponding to the colgroup
element.
col
要素の子を持たない場合colgroup
要素がspan
属性を持つ場合、非負整数を解析するための規則を使用して属性値を解析する。
解析値の結果がエラーまたは0でない場合、spanをその値にする。
そうでなければ、colgroup
要素がspan
属性を持たない、または属性値の解析の試みがエラーまたは0をもたらす場合、spanを1にする。
If span is greater than 1000, let it be 1000 instead.
spanでxwidthを増やす。
Let the last span columns in the table form a new column group, anchored at the slot (xwidth-span, 0), with width span, corresponding to the colgroup
element.
current elementが次の要素のいずれでもない間、table
の次の子にcurrent elementを進める:
current elementがcolgroup
要素である場合、上記のcolumn groupsにラベル付けされた手順にジャンプする。
ycurrentを0にする。
list of downward-growing cellsを空のリストにする。
Rows:current elementが次の要素のいずれでもない間、current elementをtable
の次の子へ前進させる:
current elementがtr
である場合、列を処理するためのアルゴリズムを実行し、current elementをtable
の次の子に前進させ、rowsにラベル付けされた手順を返す。
列グループを終了させるためのアルゴリズムを実行する。
current elementがtfoot
である場合、その要素にpending tfoot
elementsのリストを追加し、current elementをtable
の次の子に前進させ、rowsにラベル付けされた手順に戻る。
current elementはthead
またはtbody
のいずれかである。
列グループを処理するためのアルゴリズムを実行する。
rowsにラベル付けされる手順に戻る。
End: For each tfoot
element in the list of pending tfoot
elements, in tree order, run the algorithm for processing row groups.
スロットに固定されるセルを持たないスロットのみを含むthe tableにおいて行または列が存在する場合、これはテーブルモデルエラーである。
the tableを返す。
行グループを処理するためのアルゴリズム。これはthead
、tbody
、およびtfoot
要素を処理するための上記の一連の手順の設定によって呼び出される:
ystartにyheightの値を持たせる。
処理されている要素の子である各tr
要素に対して、ツリー順に、行を処理するためのアルゴリズムを実行する。
If yheight > ystart, then let all the last rows in the table from y=ystart to y=yheight-1 form a new row group, anchored at the slot with coordinate (0, ystart), with height yheight-ystart, corresponding to the element being processed.
列グループを終了させるためのアルゴリズムを実行する。
列グループを終了させるためのアルゴリズム。これは行のブロックを開始および終了する場合に上記の一連の手順で呼び出される:
ycurrentがyheightより小さい間、次の手順に従う:
下向きに成長するセルのためのアルゴリズムを実行する。
ycurrentを1増やす。
list of downward-growing cellsを空にする。
行を処理するためのアルゴリズム。これはtr
要素を処理するための上記の手順のセットで呼び出される:
yheightがycurrentと等しい場合、yheightを1増やす。(ycurrentはyheightより大きくない。)
xcurrentを0にする。
下向きに成長するセルのためのアルゴリズムを実行する。
処理されているtr
要素がtd
またはth
要素の子を持たない場合、ycurrentを1増やし、この一連の手順を中止し、上記のアルゴリズムに戻る。
Cells:xcurrentがxwidthより小さくかつ座標(xcurrent, ycurrent)をもつスロットが割り当てられたセルをすでに持つ間、xcurrentを1増やす。
xcurrentがxwidthと等しい場合、xwidthを1増やす。(xcurrentはxwidthより大きくない。)
current cellがcolspan
属性を持つ場合、その属性の値を解析し、そしてcolspanを結果とする。
その値の解析に失敗した、または0を返される場合、または属性が不在の場合、colspanを1にする。
If colspan is greater than 1000, let it be 1000 instead.
current cellがrowspan
属性を持つ場合、その属性の値を解析し、そしてrowspanを結果とする。
その値の解析に失敗した場合、または属性が不在の場合、代わりにrowspanを1にする。
If rowspan is greater than 65534, let it be 65534 instead.
If rowspan is zero and the table
element's node document is not set to quirks mode, then let cell grows downward be true, and set rowspan to 1. そうでなければ、cell grows downwardをfalseにする。
If xwidth < xcurrent+colspan, then let xwidth be xcurrent+colspan.
If yheight < ycurrent+rowspan, then let yheight be ycurrent+rowspan.
Let the slots with coordinates (x, y) such that xcurrent ≤ x < xcurrent+colspan and ycurrent ≤ y < ycurrent+rowspan be covered by a new cell c, anchored at (xcurrent, ycurrent), which has width colspan and height rowspan, corresponding to the current cell element.
current cell要素がth
要素である場合、この新しいセルcをヘッダーセルにする。そうでなければ、データセルにする。
どのヘッダーセルがcurrent cell要素に適用されるかを確立するために、次のセクションで説明されるヘッダーセルを割り当てるためのアルゴリズムを使用する。
呼び出されたすべてのスロットがすでにスロットを覆うセルを持っていた場合、これはテーブルモデルエラーである。子のスロットは現在2つのセルの重なりを持つ。
cell grows downwardがtrueである場合、タプル{c, xcurrent, colspan}をlist of downward-growing cellsに追加する。
xcurrentをcolspan増やす。
current cellが処理されているtr
要素における最後のtd
またはth
要素の子である場合、ycurrentを1増やし、この一連の手順を中止し、上記のアルゴリズムに戻る。
cellsにラベル付けされた手順に戻る。
上記のアルゴリズムが下方に成長するセルのためのアルゴリズムを実行することをユーザーエージェントに要求する場合、もしあれば、list of downward-growing cellsにおける各{cell, cellx, width}タプルに対して、ユーザーエージェントはセルcellを拡張しらければならず、その結果cellx ≤ x < cellx+widthの場合に座標(x, ycurrent)をもつスロットも覆う。
各セルは0個以上のヘッダーセルを割り当てることができる。セルprincipal cellへのヘッダーセルを割り当てるためのアルゴリズムは次のとおりである。
header listを空のセルのリストにする。
(principalx, principaly)をprincipal cellが固定されるスロットの座標にする。
headers
属性を持つ場合Take the value of the principal cell's headers
attribute and split it on ASCII whitespace, letting id list be the list of tokens obtained.
トークンに等しいIDをもつDocument
における最初の要素が同じテーブルにおけるセルであり、かつそのセルがprincipal cellでない場合、id listにおける各トークンに対して、header listのセルを加える。
headers
属性を持たない場合principalwidthをprincipal cellの幅にする。
principalheightをprincipal cellの高さにする。
For each value of y from principaly to principaly+principalheight-1, run the internal algorithm for scanning and assigning header cells, with the principal cell, the header list, the initial coordinate (principalx, y), and the increments Δx=−1 and Δy=0.
For each value of x from principalx to principalx+principalwidth-1, run the internal algorithm for scanning and assigning header cells, with the principal cell, the header list, the initial coordinate (x, principaly), and the increments Δx=0 and Δy=−1.
If the principal cell is anchored in a row group, then add all header cells that are row group headers and are anchored in the same row group with an x-coordinate less than or equal to principalx+principalwidth-1 and a y-coordinate less than or equal to principaly+principalheight-1 to header list.
If the principal cell is anchored in a column group, then add all header cells that are column group headers and are anchored in the same column group with an x-coordinate less than or equal to principalx+principalwidth-1 and a y-coordinate less than or equal to principaly+principalheight-1 to header list.
すべての空セルをheader listから除去する。
任意の複製物をheader listから除去する。
principal cellが存在する場合、header listからこれを除去する。
header listにおけるヘッダーをprincipal cellに割り当てる。
principal cell、header list、初期座標(initialx, initialy)、およびΔxとΔyの増分で与えられる、ヘッダーセルを操作して割り当てるための初期アルゴリズムは、次のとおり:
xをinitialxと等しくする。
yをinitialyと等しくする。
opaque headersを空のセルのリストにする。
in header blockをtrueにし、headers from current header blockをprincipal cellのみを含むセルのリストにする。
in header blockをfalseにし、headers from current header blockを空のセルのリストにする。
Loop:xをΔx増加し、yをΔy増加する。
このアルゴリズムの各起動に対して、ΔxとΔyのいずれかは-1であり、もう一方は0となる。
If either x or y are less than 0, then abort this internal algorithm.
スロット(x, y)を覆うセルが存在しない場合、またはスロット(x, y)を覆うセルが複数存在する場合、loopにラベル付けされたサブ手順に戻る。
current cellをスロット(x, y)を覆うセルにする。
in header blockをtrueに設定する。
current cellをheaders from current header blockに加える。
blockedをfalseにする。
If blocked is false, then add the current cell to the header list.
in header blockをfalseに設定する。headers from current header blockにおけるすべてのセルをopaque headersリストに加え、headers from current header blockリストを空にする。
loopにラベル付けされた手順に戻る。
A header cell anchored at the slot with coordinate (x, y) with width width and height height is said to be a column header if any of the following are true:
the cell's scope
attribute is in the auto state, and there are no data cells in any of the cells covering slots with y-coordinates y .. y+height-1をもつスロットを覆う任意のセルでデータセルが存在しない。
A header cell anchored at the slot with coordinate (x, y) with width width and height height is said to be a row header if any of the following are true:
the cell's scope
attribute is in the auto state, the cell is not a column header, and there are no data cells in any of the cells covering slots with x-coordinates x .. x+width-1.
セルのscope
属性がcolumn group stateにある場合、ヘッダーセルは列グループヘッダーであるといわれる。
セルのscope
属性がrow group stateにある場合、ヘッダーセルは行グループヘッダーであるといわれる。
A cell is said to be an empty cell if it contains no elements and its child text content, if any, consists only of ASCII whitespace.
この節は非規範的である。
次は、Smithsonian physical tables, Volume 71のテーブル45の下部をマークアップする方法の1つを示す:
< table >
< caption > Specification values: < b > Steel</ b > , < b > Castings</ b > ,
Ann. A.S.T.M. A27-16, Class B;* P max. 0.06; S max. 0.05.</ caption >
< thead >
< tr >
< th rowspan = 2 > Grade.</ th >
< th rowspan = 2 > Yield Point.</ th >
< th colspan = 2 > Ultimate tensile strength</ th >
< th rowspan = 2 > Per cent elong. 50.8 mm or 2 in.</ th >
< th rowspan = 2 > Per cent reduct. area.</ th >
</ tr >
< tr >
< th > kg/mm< sup > 2</ sup ></ th >
< th > lb/in< sup > 2</ sup ></ th >
</ tr >
</ thead >
< tbody >
< tr >
< td > Hard</ td >
< td > 0.45 ultimate</ td >
< td > 56.2</ td >
< td > 80,000</ td >
< td > 15</ td >
< td > 20</ td >
</ tr >
< tr >
< td > Medium</ td >
< td > 0.45 ultimate</ td >
< td > 49.2</ td >
< td > 70,000</ td >
< td > 18</ td >
< td > 25</ td >
</ tr >
< tr >
< td > Soft</ td >
< td > 0.45 ultimate</ td >
< td > 42.2</ td >
< td > 60,000</ td >
< td > 22</ td >
< td > 30</ td >
</ tr >
</ tbody >
</ table >
このテーブルは、次のようになる:
Grade. | Yield Point. | Ultimate tensile strength | Per cent elong. 50.8 mm or 2 in. | Per cent reduct. area. | |
---|---|---|---|---|---|
kg/mm2 | lb/in2 | ||||
Hard | 0.45 ultimate | 56.2 | 80,000 | 15 | 20 |
Medium | 0.45 ultimate | 49.2 | 70,000 | 18 | 25 |
Soft | 0.45 ultimate | 42.2 | 60,000 | 22 | 30 |
次は、2008年度のApple社の10-K報告書の46ページで粗利益表をマークアップする方法の1つを示す:
< table >
< thead >
< tr >
< th >
< th > 2008
< th > 2007
< th > 2006
< tbody >
< tr >
< th > Net sales
< td > $ 32,479
< td > $ 24,006
< td > $ 19,315
< tr >
< th > Cost of sales
< td > 21,334
< td > 15,852
< td > 13,717
< tbody >
< tr >
< th > Gross margin
< td > $ 11,145
< td > $ 8,154
< td > $ 5,598
< tfoot >
< tr >
< th > Gross margin percentage
< td > 34.3%
< td > 34.0%
< td > 29.0%
</ table >
このテーブルは、次のようになる:
2008 | 2007 | 2006 | |
---|---|---|---|
Net sales | $ 32,479 | $ 24,006 | $ 19,315 |
Cost of sales | 21,334 | 15,852 | 13,717 |
Gross margin | $ 11,145 | $ 8,154 | $ 5,598 |
Gross margin percentage | 34.3% | 34.0% | 29.0% |
以下は、その文書の同じページに下から営業費用テーブルをマークアップする方法を示す:
< table >
< colgroup > < col >
< colgroup > < col > < col > < col >
< thead >
< tr > < th > < th > 2008 < th > 2007 < th > 2006
< tbody >
< tr > < th scope = rowgroup > Research and development
< td > $ 1,109 < td > $ 782 < td > $ 712
< tr > < th scope = row > Percentage of net sales
< td > 3.4% < td > 3.3% < td > 3.7%
< tbody >
< tr > < th scope = rowgroup > Selling, general, and administrative
< td > $ 3,761 < td > $ 2,963 < td > $ 2,433
< tr > < th scope = row > Percentage of net sales
< td > 11.6% < td > 12.3% < td > 12.6%
</ table >
このテーブルは、次のようになる:
2008 | 2007 | 2006 | |
---|---|---|---|
Research and development | $ 1,109 | $ 782 | $ 712 |
Percentage of net sales | 3.4% | 3.3% | 3.7% |
Selling, general, and administrative | $ 3,761 | $ 2,963 | $ 2,433 |
Percentage of net sales | 11.6% | 12.3% | 12.6% |