2009-07-14 35 views
2

Ich habe eine HTML-Tabelle mit mehreren Spalten und mehreren Zeilen. Die letzte Zeile hat nicht immer so viele TD-Elemente wie die anderen Zeilen. Es wird korrekt in mehreren Browsern angezeigt, die ich überprüft und Validierungsprüfungen bestanden habe. Aber es scheint falsch zu sein. Sollte die Anzahl der TD-Elemente in jeder Zeile gleich sein?Gültiges HTML und die Anzahl der TD-Elemente

EDIT: Dies kann mit oder ohne Colspans und Rowspans geschehen.

Antwort

7

Die Spezifikation explizit erlaubt inconsistent numbers of columns between rows (in Markup mindestens, der Browser wird voraussichtlich zusätzliche generieren, um den Unterschied zu machen).

Die Anzahl der Spalten entspricht der Anzahl der Spalten, die für die Zeile mit den meisten Spalten erforderlich sind, einschließlich Zellen, die sich über mehrere Spalten erstrecken. Für jede Zeile, die weniger als diese Anzahl von Spalten hat, sollte das Ende dieser Zeile mit leeren Zellen aufgefüllt werden.

& hellip; Aber es ist sehr selten, dass solch eine Datenstruktur überhaupt Sinn macht. Wenn Sie also inkonsistente Zeilenlängen haben, machen Sie wahrscheinlich etwas falsch.

+0

Ooh! Ich wollte gerade dieses Zitat einfügen ... aber ich war mir nicht sicher, ob, wenn sie sagten "das Ende der Reihe sollte mit leeren Zellen aufgefüllt werden" auf den Coder oder den Browser angewendet wurde. So wie ich es gelesen habe, war es der Coder, denn darauf scheint der Rest des Dokuments anwendbar zu sein. – Beska

+0

Der vorherige Satz besagt, dass "Benutzeragenten die Anzahl der Spalten auf die von den Zeilen benötigten Spalten beziehen sollten" - was bei User-Agents (wie Browsern und Spidern) und nicht bei Autoren eindeutig auf diesen Bereich abzielt. – Quentin

+0

Ich denke, wenn es sich tatsächlich um tabellarische Daten handelt, dann sollten Zellen, die keine fehlenden Zellen haben, Zellen sein, die den Mangel an Daten wie NULL oder N/A beschreiben. – Liam

6

"Sollte die Anzahl der TD-Elemente in jeder Reihe gleich sein?"

Obwohl es nicht unbedingt erforderlich ist, sage ich "Ja, oder Sie sollten Colspans haben, um sie zu kompensieren."

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

auf diesem Meiner Meinung, trotz, dass es nicht von der W3C-Spezifikation erforderlich ist, ist, dass, wenn man bedenkt, wie fleckigen Browser sind über die Art, wie sie etwas unterstützen, würde ich es so konsequent wie möglich machen, mit colspans oder leere Zellen, um sicherzustellen, dass es in allen Browsern genau das tut, was ich möchte.

Der sekundäre Vorteil ist für alle, die Ihren Code pflegen. Macht es offensichtlicher, was beabsichtigt ist, als dass es als ein möglicher Fehler wahrgenommen wird.

+1

Wirklich obwohl? Angenommen, ich habe 3 Spalten - eine Zeilenkennung und 2 Attribute, und das zweite Attribut ist nicht für eine Zeile anwendbar - ein Colspan scheint nicht sehr semantisch zu sein (der gleiche Wert für zwei Zeilen). – Ross

+1

Ich neige dazu, zuzustimmen, aber haben Sie eine Referenz, um das zu bestätigen? – Liam

+0

Der vorherige Satz besagt, dass "Benutzeragenten die Anzahl der Spalten auf die von den Zeilen benötigten Spalten beziehen sollten" - was bei User-Agents (wie Browsern und Spidern) und nicht bei Autoren eindeutig auf diesen Bereich abzielt. - – Quentin

3

In HTML-Standards ist es nicht erforderlich, dass die Anzahl der von jeder Zeile definierten Spalten übereinstimmt. Es kann gesagt werden, dass Sie eine "mole" oder "best practices" -Stellung für eine einheitliche Anzahl von Spalten bereitstellen sollten, und ich würde das unterstützen, aber es ist nicht standardmäßig erforderlich, weshalb es validiert.

+0

Selbst wenn es vom Standard gefordert wurde, würde es trotzdem validieren. Es gibt keine Möglichkeit für eine DTD, eine Anforderung zu beschreiben, die die gleiche Anzahl von Spalten wie jede andere Zeile in der Tabelle haben soll. – Quentin

0

Nur eine Idee: Versuchen Sie, Ihre Tabelle mit Element zu erstellen ;-) Es gibt einige Probleme in der Darstellung von Tabellen.

Verwandte Themen