Je dois construire une table avec 5 colonnes. La largeur du tableau est variable (50% de la largeur du contenu). Certaines colonnes contiennent des boutons de taille fixe, donc ces colonnes devraient avoir un fixe avec, disons 100px. Certaines colonnes contiennent du texte, donc je veux que ces colonnes aient des largeurs de colonne variables.
Par exemple:
Colonne1: 20% de (tablewidth - sum (fixedwidth_columns)) ''
Colonne2: 100px
Colonne3: 40% de (tablewidth - sum (fixedwidth_columns))
Colonne 4: 200 pixels
Colonne 5: 40% de (tablewidth - sum (fixedwidth_columns))
Quelle est la meilleure façon d'y parvenir?
Vous pouvez définir le table-layout: fixed
pour l'élément table
, puis définissez simplement l'attribut width
sur le <td>
ou <th>
éléments:
table {
table-layout: fixed;
}
Depuis le MDN :
Le
table-layout
La propriété CSS définit l'algorithme à utiliser pour disposer les cellules, les lignes et les colonnes du tableau.
Valeurs:
fixe:
Les largeurs de tableau et de colonne sont définies par les largeurs des élémentstable
etcol
ou par la largeur de la première ligne de cellules. Les cellules des lignes suivantes n'affectent pas la largeur des colonnes.
à largeur fixe dans un tableau, vous avez besoin du table-layout
propriété définie sur fixed;
Puisque vous mélangez% et px, ce ne sera pas cohérent.
Vous pouvez définir uniquement la largeur px et éventuellement une petite valeur de% et laisser l'autre colonne utiliser la largeur disponible. exemple: http://jsfiddle.net/M4Et8/2/
<table style='table-layout:fixed;width:100%' border='1'>
<tr>
<th style='width: 20%;'>Column1</th>
<th style='width: 100px;'>Column2</th>
<th >Column3</th>
<th style='width: 200px;'>Column4</th>
<th >Column5</th>
</tr>
</table>