Правильно ли этот код?
<table>
    <tr>
        <td>...</td>
    </tr>
    <tr>
        <div>...</div>
    </tr>
    <tr>
        <td>...</td>
    </tr>    
</table>    
не знают для семантических (и правил W3C). Что вы можете сказать?
Правильно ли этот код?
<table>
    <tr>
        <td>...</td>
    </tr>
    <tr>
        <div>...</div>
    </tr>
    <tr>
        <td>...</td>
    </tr>    
</table>    
не знают для семантических (и правил W3C). Что вы можете сказать?
Нет, это неверно. Элементы tr могут содержать только элементы th и td. Из спецификация HTML4:
<!ELEMENT TR - O (TH|TD)+ -- table row --> <!ATTLIST TR -- table row -- %attrs; -- %coreattrs, %i18n, %events -- %cellhalign; -- horizontal alignment in cells -- %cellvalign; -- vertical alignment in cells -- >
Не только это недействительно, но это не сработает! Эта надбавка
<table>
    <tr>
        <td>The First Row</td>
    </tr>
    <tr>
        <div>The Second Row</div>
    </tr>
    <tr>
        <td>The Third Row</td>
    </tr>    
</table> 
Производит отображение
The Second Row
The First Row
The Third Row
Div полностью выталкивается из таблицы и помещается перед ним в DOM
Нет, вы не должны использовать div внутри таблицы, потому что это элемент уровня блока. Вы можете переопределить поведение с помощью CSS, но оно не будет проверяться с помощью W3C, если это ваша цель.
Нет, вы не должны использовать <div> внутри <tr>. Вы можете использовать его внутри <td>, где, поскольку таблица является правильно вложенной таблицей, хотя это может быть не самая лучшая практика. Вы действительно можете переопределить настройку отображения div или любого элемента. Фактически вы могли бы отобразить <div> (который по умолчанию для блока) в виде таблицы-таблицы и наоборот.
Это будет работать в режиме quirks, но браузер, который совместим со стандартным режимом, не будет работать в зависимости от вашего doctype. Избегание режима quirks является одним из ключей к успешному созданию веб-контента, совместимого с несколькими браузерами.
Некоторые современные браузеры имеют два режима рендеринга. Режим Quirk предоставляет HTML-документ, такой как старые браузеры, используемые для этого, например. Netscape 4, Internet Explorer 4 и 5. Стандартный режим отображает страницу в соответствии с рекомендациями W3C. В зависимости от декларации типа документа, присутствующей в документе HTML, браузер переключается либо в режим quirk, либо в стандартный режим. Если нет объявления типа документа, браузер переключится в режим quirk.
http://www.w3.org/TR/REC-html32#dtd
JavaScript не должен вести себя по-другому; однако объекты DOM, на которых работает JavaScript, могут иметь разные типы поведения.
Скажем, ваша строка таблицы содержит 5 столбцов в целом, и вы хотите, чтобы ваш div занимал всю ширину таблицы. Следующее должно сделать трюк.
<tr>
  <td colspan=5>
    <div class="some-class">
      <p>Hey</p>
    </div>
  </td>
</tr>