HTML:
<table>
<thead>
<tr>
<th class="from">From</th>
<th class="subject">Subject</th>
<th class="date">Date</th>
</tr>
</thead>
<tbody>
<tr>
<td>[from]</td>
<td>[subject]</td>
<td>[date]</td>
</tr>
</tbody>
</table>
CSS:
table {
width: 100%;
border: 1px solid #000;
}
th.from, th.date {
width: 15%
}
th.subject {
width: 70%; /* Not necessary, since only 70% width remains */
}
La meilleure pratique est de garder votre HTML et CSS séparent moins la duplication de code, et pour la séparation des préoccupations (HTML pour la structure et la sémantique, et CSS pour la présentation). Notez que pour que cela fonctionne dans les anciennes versions d'Internet Explorer, vous devrez peut-être donner à votre table une largeur spécifique (par exemple, 900px). Ce navigateur a quelques problèmes pour rendre un élément avec des dimensions en pourcentage si son encapsuleur n'a pas de dimensions exactes.
L'utilisation colgroup est probablement une meilleure pratique si vous voulez le style d'une colonne entière. – Muhd
+1 pour obtenir la spécification de largeur complètement hors du HTML et dans le CSS. – Seth
+1 pour la bonne note sur les anciennes versions de IE; "anciennes versions d'Internet Explorer". – Samuel