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

Я играл с некоторыми идеями, используя сырой 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 или отладчике JavaScript Google Chrome... все они показали, что существует элемент tbody, окружающий все узлы tr.

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

2 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам