2013-10-09 3 views

ответ

5

thead не h3, если вы используете h3 внутри td элемента, это абсолютно нормально, но если вы используете h3 в качестве прямого ребенка tr является недействительным.

Симметричного использовать thead вы можете использовать его как этот

<table> 
    <thead> 
     <tr> 
     <th>This is table head and not h3</th> 
     </tr> 
    </thead> 
    <tfoot> 
     <tr> 
     <td>Foot Cell</td> 
     </tr> 
    </tfoot> 
    <tbody> 
     <tr> 
      <td> 
      <h3>It's completely valid to put your h3 here</h3> 
      Table cell 
      <p>You can also use p tag here 
      </td> 
     </tr> 
    </tbody> 
</table> 

Но если вы делаете это что-то вроде этого, является недействительным

<table> 
    <tr> 
     <h3>It's invalid</h3> 
     <td>This is a cell</td> 
    </tr> 
</table> 

You всегда можно проверить here, является ли ваша разметка действительной или нет.

+0

Спасибо за этот описательный ответ. – jeff

+0

@CengizFrostclaw Вы приветствуете :) –

4

Элементы не могут появляться внутри тега. Внутри tdelement, то есть между тегом <td> и соответствующим (возможно неявным) тегом </td>, модель контента представляет собой «содержимое потока». Это фактически означает все, что может появиться внутри тела документа в целом. Таким образом, синтаксически допускается h3.

Модель контента th такая же, как и у td в HTML4, но in HTML5 CR, она более ограничена и исключает, среди прочего, элементы заголовка.

Содержание модель tr элемента (строки таблицы) допускает только th и td детей, так что ничего не может появиться непосредственно внутри него, только как завернутые в th или td.

Это правила синтаксиса, и они не подразумевают, что весь контент будет значимым. В частности, элемент заголовка внутри th был бы довольно аномальным (каков был бы заголовок для «самой маркировки th» означает ячейку заголовка), тогда как в ячейке td это может иметь прекрасный смысл (например, в таблице, которая сравнивает две тексты кусочно бок о бок).

+0

Примечание для HTML5: модель контента 'th' отличается от модели' td'. ['th'] (http://www.w3.org/TR/html5/tabular-data.html#the-theelement) имеет:« Содержимое потока [...] без [...] заголовка содержимого потомков ». – unor

+0

Правильно, спасибо, отредактировал ответ. –