Почему браузеры вставляют элемент tbody в элементы таблицы?

Я играл с некоторыми идеями, используя raw html и JQuery. Единственное, что я сделал, это создать элемент таблицы с набором строк.

<table id="MyTable" >
    <tr>
        <td>Title</td>
    </tr>
    <tr>
        <td>1</td>
    </tr>
    <tr>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
    </tr>
    <tr>
        <td>4</td>
    </tr>
</table>

Но когда я просмотрел код в FireFox + Firebug, IE8 Developer Toolbar или JavaScript-отладчик Google Chrome... все они показали, что это элемент tbody, окружающий все tr.

Я не против этого, но это стандартное поведение?

Ответ 1

http://htmlhelp.com/reference/html40/tables/tbody.html:

Элемент TBODY определяет группу строк данных в таблице. TABLE должен иметь один или несколько элементов TBODY, которые должны следовать за дополнительным TFOOT. Конечный тег TBODY всегда является необязательным. Начальный тег является необязательным, если таблица содержит только один TBODY, а не THEAD или TFOOT.

Таким образом, всегда есть tbody (хотя иногда и с опциями, и с опущенными вкладками start и end), и инструменты, которые вы используете, верны, показывая его вам.

thead или tfoot, с другой стороны, никогда не присутствуют, если вы явно не включаете их, и если вы это делаете, то (я) тоже должен быть явным.

Ответ 2

Да, tbody - это стандартный элемент, указывающий тело таблицы. Не нужно помещать его в разметку, но он будет включен в DOM, как вы видели.