2009-07-14 14 views
2

私はいくつかの列といくつかの行を持つHTMLテーブルを持っています。最後の行は、必ずしも他の行と同じ数のTD要素を持つわけではありません。これは、私がチェックし、検証チェックを渡すいくつかのブラウザで正しくレンダリングします。しかし、それは間違っているようです。 TD要素の数はすべての行で同じにする必要がありますか?有効なHTMLとTD要素の数

EDIT:これは、列スパンおよび列スパンの有無にかかわらず発生する可能性があります。

答えて

7

この仕様では、明示的にinconsistent numbers of columns between rowsが許可されています(少なくともマークアップでは、ブラウザは差を補うために余分なものを生成することが予想されます)。

列の数は、複数の列にまたがるセルを含め、ほとんどの列を持つ行に必要な列の数に等しいです。この数よりも少ない列の場合は、その行の末尾に空のセルが埋め込まれている必要があります。

…率直に言って、このようなデータ構造が全く意味をなさないことは非常にまれです。行の長さが揃っていないと、おそらく何か間違っているでしょう。

+0

Ooh!私はちょうどその引用符を入れようとしていたが、コーダーやブラウザに「行の末尾に空のセルが埋め込まれている」と言われたのかどうかは分からなかった。私がそれを読んだところ、それはコーダーでした。それは残りの文書が適用可能であったようだからです。 – Beska

+0

前の文章では、「ユーザーエージェントは、ブラウザではなくブラウザーやスパイダーなどのユーザーエージェントでそのセクションを明確に対象としている行の数を基にしなければなりません」と述べています。 – Quentin

+0

実際に表形式のデータであれば、セルが欠けているのではなく、NULLやN/Aなどのデータがないことを表すセルがあるはずです。 – Liam

6

"TD要素の数はすべての行で同じにする必要がありますか?"

厳密には必須ではありませんが、私は「はい」と言っていますが、それを補うために列車が必要です。

<table> 
    <tr> 
     <td>two</td> 
     <td>columns</td> 
    </tr> 
    <tr> 
     <td colspan="2">one big column</td> 
    </tr> 
</table> 

この上の私のテイクでは、それはW3Cの仕様によって必要とされていないことにもかかわらず、彼らは何をサポートする方法についてはどのようにむらブラウザ考えるとき、私はcolspansを使用して、可能な限り一貫させるだろうということですまたは空のセルを使用して、すべてのブラウザで必要なものを正確に実行していることを確認します。

第2の利点は、コードを管理しているすべての人にとってです。可能性のあるエラーとして認識されるのではなく、意図されていることをより明白にします。

+1

本当にですか?行識別子と2つの属性を持つ3つの列があり、2つ目の属性は1つの行には適用できないとします。列スパンは意味がわかりません(2行の値が同じです)。 – Ross

+1

私は同意する傾向がありますが、それをバックアップするための参照がありますか? – Liam

+0

前の文章では、「ユーザーエージェントは、ブラウザではなくブラウザーやスパイダーなどのユーザーエージェントでそのセクションを明確に対象としている行の数を基にしなければなりません」と述べています。 - – Quentin

3

HTML標準では、各行で定義された列の数が一致する必要はありません。道徳的なやベストプラクティスの観点から、あなたは一様な数の列を提供する必要があると言えます。私はそれをサポートしますが、標準では必要ではないため、検証しています。

+0

標準で必要とされたとしても、それでも検証されます。 DTDが、テーブル内の他のすべての行と同じ数の列を持つという要件を記述する方法はありません。 – Quentin

0

ちょっとしたアイデア:要素を使ってテーブルを作成してみましょう;-)レンダリングテーブルにはいくつかの問題があります。

関連する問題