2009-08-20 6 views
0
<td> 
<div id="test">...</div> 
</td> 
<td> 
..... 
</td> 

Je peux voir de Firebug que td est d'environ 40 pixels plus large que la div « test » (largeur + frontière + marge tout compris), mais il n'y a pas de style css qui ne ceci (pas de réglage de largeur, de rembourrage)!div intérieur td, mais td est inattendue élargi

Pourquoi le "td" n'est pas aussi large que div ici?

Je suis maintenant en dur le td to9 être aussi large que div "test", mais se sentir mal à l'aise.

Répondre

3

Sans le reste de votre code, je vais sortir sur un membre ici, mais le <td> se taille automatiquement en fonction de la largeur de la table/nombre de colonnes dans la table. Si une largeur explicite n'est pas affectée à votre table, elle s'étendra jusqu'à 100% de largeur de son conteneur ou de son élément parent. Vous pouvez vous sentir à l'aise en évitant cela en définissant une largeur explicite sur la table ou des cellules de tableau si nécessaire.

Dans le scénario suivant, chaque colonne sera automatiquement numérotée en largeur de table/nombre de colonnes ou, dans ce cas, 400/4 = 100. Chaque colonne aura donc une largeur de 100 px.

<table style="width:400px"> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
</table> 

Selon le navigateur, il existe deux résultats possibles dans ce scénario. 1. La table s'élargira à 100% de la largeur de son parent, ou 600px ici. Cela signifie que chaque colonne prendra alors automatiquement une taille de 150 pixels. 2. La table et les colonnes peuvent développer la largeur de l'élément enfant le plus large dans son groupe de colonnes.

<body style="width: 600px"> <!-- Could be a div or other element here --> 
<table> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
</table> 
</body> 

Les spécifications WC3 se trouve here et offre un grand détail sur la façon dont les navigateurs sont censés pour mettre en œuvre la spécification HTML 4.01 en ce qui concerne les tables.

+0

sans spécifier la largeur td, comment l'autoresize est fait? J'ai en quelque sorte déclenché une autoresize qui n'est pas prévu par moi! Je veux dire le td (s) sont assignés une largeur différente en fonction de son contenu.Mais comment est-ce fait? – omg

+0

Le navigateur gère le dimensionnement automatique des colonnes de table selon les recommandations de WC3 - la spécification peut être trouvée à http://www.w3.org/TR/html401/struct/tables.html#h-11.2.4.4 – PortageMonkey

Questions connexes