Frage

ist es notwendig, <th> in jedem Tisch zu haben? selbst wenn Tabelle keine Überschrift hat?

Tabelle hat drei anderen Tag <thead> <tbody> <tfoot> ist es notwendig, alle zu verwenden, auch wenn ich nichts für Tabellenfuß haben. Firefox standardmäßig hinzufügen alle diese im Code.

und ist es notwendig, <th> immer in einem <thead> sein sollte

, und wenn ich eine Überschrift in Inhalt von Client empfangen haben, und der Kurs von außerhalb der Tabelle ist aber auf Tabelle, dann wie soll ich für die Tabelle, dass die Überschrift stellen

Als obige Tabelle

<h3>Heading of table<h3>
<table>......</table>

als Überschrift der Tabelle

<table>
<thead><tr rowspan=3><th>Heading of table</th></tr></thead>

oder als Beschriftung der Tabelle

<table>
<caption> Heading of table</caption>

Welche gut für Bildschirmleser ist und semantisch korrekt?

War es hilfreich?

Lösung

Nach dem HTMLDTD dies ist das Content-Modell für HTML-Tabellen:

<!ELEMENT TABLE - -
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT CAPTION  - - (%inline;)*     -- table caption -->
<!ELEMENT THEAD    - O (TR)+           -- table header -->
<!ELEMENT TFOOT    - O (TR)+           -- table footer -->
<!ELEMENT TBODY    O O (TR)+           -- table body -->
<!ELEMENT COLGROUP - O (COL)*          -- table column group -->
<!ELEMENT COL      - O EMPTY           -- table column -->
<!ELEMENT TR       - O (TH|TD)+        -- table row -->
<!ELEMENT (TH|TD)  - O (%flow;)*       -- table header cell, table data cell-->

Das ist also illegal Syntax:

<thead><th>Heading of table</th></thead>

Es sollte sein:

<thead><tr><th>Heading of table</th></tr></thead>

<th> Elemente sind nicht überall erforderlich. Sie sind einfach eine der beiden Zelltypen (die andere <td>), dass Sie in einer Tabellenzeile verwenden können. Ein <thead> ist ein optionaler Tabellenabschnitt, der eine oder mehr Zeilen enthalten.

Edit: In Bezug auf Warum zu verwenden <thead> gibt es mehrere Gründe:

  1. Semantic: Sie sind zwischen dem Inhalt der Tabelle Differenzierung und "Metadaten". Dies wird am häufigsten verwendet, um delineate zwischen Spaltenüberschriften und Datenzeilen;
  2. Erreichbarkeit: es hilft Menschen, die Screen-Reader verwenden, um den Inhalt der Tabelle zu verstehen;
  3. Non-Screen Media: Drucken einer mehrseitigen Tabelle kann Ihnen erlauben, die <thead> Inhalt am oberen Rand jeder Seite zu setzen, damit die Menschen verstehen, was die Spalten ohne schnippte wieder mehrere Seiten Sinn;
  4. Styling: CSS können <tbody> Elemente, <thead> Elemente angewendet werden, die beide oder eine andere Kombination. Es gibt Ihnen etwas anderes einen Wähler gegen schreiben;
  5. Javascript: diese oft kommt, wenn jQuery und ähnliche Bibliotheken. Die zusätzlichen Informationen sind hilfreich in Code zu schreiben.

Als Beispiel für (5) Sie können dies tun:

$("table > tbody > tr:nth-child(odd)").addClass("odd");

Das <thead> Element bedeutet diese Zeilen nicht so gestylt werden. Oder Sie tun:

$("table > tbody > tr").hover(function() {
  $(this).addClass("hover");
}, function() {
  $(this).removeClass("hover");
});

mit:

tr.hover { background: yellow; }

die wiederum schließt die <thead> Reihen.

Schließlich gelten viele dieser Argumente mit <th> Elemente über <td> Elemente: Sie zeigt, dass diese Zelle keine Daten, sondern ein Kopf irgendeiner Art. Oft werden solche Zellen zusammen im <thead> Abschnitt in einer oder mehreren Reihen gruppiert werden oder die erste Zelle auf die Struktur und die Art der Tabelle je in jeder Zeile sein.

Andere Tipps

Mit <th>s wenn Sie tabellarische Daten anzeigt - Verwendung eines für jede Spalte. Es ist schön, für Ihre regelmäßigen Nutzer und wichtig für Screen-Reader. Verwenden Sie keine <th>s wenn Sie die Tabelle für Layoutzwecke (oder einem anderen ruchlosen Systeme ...) werden mit

Nein, ist es nicht notwendig, th zu haben. Aber es sieht nicht wie Sie th rechts verwenden. Im Allgemeinen haben Sie eine für jede Spalte. Ein einfaches Beispiel für th verwendet richtig ist:

<table>
<tr><th>Breed</th><th>Name</th></tr>
<tr><td>Pekingese</td><td>Pluto</td></tr>
<tr><td>Lab</td><td>Buddy</td></tr>
</table>

Sie können auch tun:

<table>
<thead><tr><th>Breed</th><th>Name</th></tr></thead>
<tr><td>Pekingese</td><td>Pluto</td></tr>
<tr><td>Lab</td><td>Buddy</td></tr>
</table>

Die Antwort ist

YES

, wenn Sie Tabellen verwenden Tabellendaten anzuzeigen .

Tabellarische Daten werden in Zeilen und Spalten aus einem Grunde organisiert. Die Bedeutung des Datums in einer Tabellenzelle durch die Bedeutung der Säule definiert ist und die Zeile, in der es angezeigt wird.

Es ist wichtig, diese Zellen zu identifizieren, die zu den Zeilen und Spalten Sinn gibt eher getrennt von den Zellen, die nur Daten enthalten.

Zum Beispiel der folgenden Tabelle vermittelt absolut keine aussagekräftigen Informationen:

34 56 90 15
45 65 85 30
50 55 70 35

Die Zahlen nur Sinn, wenn die Zeilen und Spalten Namen gegeben. Diese Namen sind markiert mit <th>:

    Feb May Aug Nov
ITH
JFK
IST

Natürlich haben wir noch nicht wissen, was diese Zahlen bedeuten, weshalb <caption> benötigt wird:

Average Temperatures by Month at Selected Airports
    Feb May Aug Nov
ITH
JFK
IST

Schließlich ist es wichtig zu beachten, Details wie die Maßeinheiten, Datenquellen usw. Diese Art von Informationen geht in der Regel in der Fußzeile der Tabelle:

Average Temperatures by Month at Selected Airports
    Feb May Aug Nov
ITH
JFK
IST
Temperatures in °F. Source: Publication #456 MNMO

Der Titel der Tabelle geht in <caption> . Die <thead> und <tfoot> Abschnitte sind besonders nützlich, wenn eine Tabelle groß wird. Siehe Wie mit Seitenumbrüchen beschäftigen, wenn Drucken einer großen HTML-Tabelle für ein Beispiel.

Sie können mit <colgroups> Gruppe zusammen logisch zusammenhängende Daten.

Sie verwenden möchten, was Ihre Daten am besten beschreibt.

<caption> wird die gesamte Tabelle beschreiben. th wird eine einzelne Zelle erstellen, die in der Regel wird verwendet, um eine Spalte zu beschreiben (kann aber auch für Zeilenüberschriften verwendet werden).

thead, tfoot und tbody. falls verwendet, die alle verwendet werden können, und sind alle optional vorgesehen, dass sie in dieser Reihenfolge sind, und Sie haben nur eine thead und ein tfoot (aber können Sie mehrere tbody haben. Viele Browser (alle?) fügt sie implizit, wenn Sie don‘ t, aber die Spezifikation sagt sie sind optional.

th innerhalb jeder tr erscheinen kann, unabhängig davon, wo der tr ist.

<table>
     <tr>
        <td>text</td>
     </tr>      
</table>

Dies ist Minimum Tisch, dass ich mir vorstellen kann.

Die Vorteile sind Semantik. Die <th> Mittel T können H EADER. Verwenden Sie es, die Header der Spalten auszuzeichnen. Im Allgemeinen innerhalb eines <thead>.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top