web-dev-qa-db-fra.com

div à l'intérieur de la table

Quelqu'un peut-il me dire si div à l'intérieur d'une table est autorisé ou non selon w3c

32
andrew Sullivan
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <title>test</title>
  </head>
  <body>
    <table>
      <tr>
        <td>
          <div>content</div>
        </td>
      </tr>
    </table>
  </body>
</html>

Ce document a été vérifié avec succès en tant que XHTML 1.0 Transitional!

42
echox

Vous ne pouvez pas mettre un divdirectement à l'intérieur d'un table, comme ceci:

<!-- INVALID -->
<table>
  <div>
    Hello World
  </div>
</table>

Cependant, mettre un div à l'intérieur d'un élément td ou th est correct:

<!-- VALID -->
<table>
  <tr>
    <td>
      <div>
        Hello World
      </div>
    </td>
  </tr>
</table>
38
Pär Wieslander

vous pouvez placer des balises div à l'intérieur d'une balise td, mais pas directement à l'intérieur d'une table ou d'une balise tr. exemples:

cela marche:

<table>
  <tr>
    <td> 
      <div>This will work.</div> 
    </td>
  </tr>
<table>

cela ne fonctionne pas:

<table>
  <tr>
    <div> this does not work. </div> 
  </tr>
</table>

cela ne fonctionne pas non plus:

<table>
  <div> this does not work. </div>
</table>
15
Paul

Bien que vous puissiez, comme d'autres l'ont noté ici, mettre un DIV dans un TD (pas en tant qu'enfant direct de TABLE), je déconseille fortement d'utiliser un DIV en tant qu'enfant d'un TD. , bien sûr, vous êtes fan de maux de tête.

Il y a peu à gagner et beaucoup à perdre, car il existe de nombreuses divergences entre les navigateurs concernant la façon dont les largeurs, marges, bordures, etc., sont traitées lorsque vous combinez les deux. Je ne peux pas vous dire combien de fois j'ai dû nettoyer ce type de balisage pour les clients parce qu'ils avaient du mal à afficher correctement leur code HTML dans tel ou tel navigateur.

Là encore, si vous n'êtes pas pointilleux sur l'apparence des choses, ne tenez pas compte de ces conseils.

9
Robusto

Il est autorisé car TD peut contenir des éléments de bloc en ligne ET.

Ici vous pouvez le trouver dans la référence: http://xhtml.com/en/xhtml/reference/td/#td-contains

2
2ndkauboy