table-layout: correction d'un problème avec les largeurs de colonne
Nous sommes à l'aide de la CSS table-layout: fixed
propriété de notre application mobile. (Je ne me souviens pas de la pleine raison, mais je crois qu'il avait à faire avec l'activation de mot d'habillage de quelques sortes)...
J'ai couru dans un problème où nous avons besoin de la taille de l'une des deux colonnes du tableau à deux colonnes. Pas une grosse affaire, habituellement nous faisons cela:
<table>
<tbody>
<tr>
<th width="20%">hello world</th>
<td>hello world</td>
</tr>
</tbody>
</table>
Qui fonctionne très bien.
Cependant, si nous avons besoin de créer une ligne qui s'étend sur deux colonnes AVANT celui-ci:
<table>
<tbody>
<tr>
<td colspan="2">hello world</th>
</tr>
<tr>
<th width="20%">hello world</th>
<td>hello world</td>
</tr>
</tbody>
</table>
Ce qui se passe, au moins en Chrome, c'est que les deux colonnes composant logiciel enfichable à 50% des largeurs. J'ai un jsbin exemple ici:
Est-ce un comportement normal? Un Chrome bug? Une façon de contourner ce problème?
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas un bug.
table-layout:fixed
signifie que le navigateur est autorisé à optimiser la table-les calculs de mise en assumant seule la première ligne et de la colonne spécifications de la matière. En particulier, elle ne PAS besoin d'inspecter et de faire les calculs de mise sur la table de contenu, qui peut faire une grande différence dans la présentation de la performance.La bonne solution est d'utiliser le
<col>
et<colgroup>
éléments de spécifier explicitement les largeurs de colonnes, plutôt que d'utiliser la première ligne.table-layout: fixed
peut être nécessaire pour casser les mots longs (voir jsbin.com/utifiy/2/edit). En général, si vous avez besoin précis de contrôle de mise en page, lafixed
valeur vous donne que le défaut n'a plus de magie: mais vous avez besoin pour remplacer la magie de dimensionnement avec quelque chose - c'est pourquoi vous devez soit explicitement la taille de la première ligne oucol
élément spécifications. L'OP problème est que si la première ligne a des cellules qui s'étendent sur des colonnes, vous pouvez pas déclarer la taille des colonnes sur les cellules, de sorte que la solution est d'utilisercol
à base de dimensionnement.première ligne de la table doit contenir tous les
aussi, Chrome bugs n'autorise pas l'utilisation de ce.