Voici un bricolage fonctionnel avec un nombre indéterminé de cellules : http://jsfiddle.net/r9yrM/1/
Vous pouvez fixer une largeur à chaque parent div
(le tableau ), sinon ce sera 100% comme d'habitude.
L'astuce consiste à utiliser table-layout: fixed;
et une certaine largeur sur chaque cellule pour le déclencher, ici 2%. Cela va déclencher le autre l'algorithme de table, celui où les navigateurs s'efforcent de respecter les dimensions indiquées.
Veuillez tester avec Chrome (et IE8- si nécessaire). C'est OK avec un Safari récent mais je ne me souviens pas de la compatibilité de cette astuce avec eux.
CSS (instructions pertinentes) :
div {
display: table;
width: 250px;
table-layout: fixed;
}
div > div {
display: table-cell;
width: 2%; /* or 100% according to OP comment. See edit about Safari 6 below */
}
EDIT (2013) : Méfiez-vous de Safari 6 sur OS X, il a table-layout: fixed;
mauvais (ou peut-être simplement différent, très différent des autres navigateurs. Je n'ai pas relu la mise en page des tableaux REC de CSS2.1 ;) ). Préparez-vous à des résultats différents.