Split largeur disponible entre les deux divs

J'ai un conteneur (largeur n'est pas connu) contenant quatre vrd, comme suit:

| Div1 | Div2 ............... | .............. Div3 | Div4 |

Le plus à gauche et le plus à droite de la vrd (Div1/Div4) sont de largeur fixe; c'est la partie facile.

La largeur de Div2/Div3 n'est pas connu, et je voudrais éviter de mettre une largeur fixe pour eux, car selon le contenu, on peut être beaucoup plus large que les autres (donc je ne peux pas juste par exemple, ont chacun 50% de l'espace disponible)

Je voudrais la largeur de Div2/Div3 être calculée automatiquement par le navigateur, puis s'il reste de l'espace à gauche, il doit s'étirer pour remplir tout l'espace restant (il n'a pas d'importance comment le reste de l'espace est divisé entre Div2/Div3)

La façon dont je me rapproche de ce droit est maintenant:

  • Div1 flottait à gauche (ou en position absolue)
  • Div4 flottait à droite (ou en position absolue)
  • Div2 a une marge à gauche égale à la largeur de la Div1 (connu)
  • Div3 a une marge à droite égale à la largeur de Div4 (connu)

Ma question est, comment faire pour avoir Div2 et Div3 étirer pour remplir le solde disponible, la largeur? Je suppose qu'une option serait d'utiliser display: table, et une autre possibilité serait flex-zone. Existe-il des alternatives?

Mise à jour: Édité pour plus de clarté.

Mise à jour 2: Veuillez noter que je ne peut pas supposer que Div2 et Div3 devez obtenir 50% de l'espace disponible. Ceci est explicitement mentionné dans la question mais de toute façon, je reçois des réponses sur la base de cette hypothèse.

Évidemment, les tables sont la méthode la plus simple et la plus compatible solution ici (je ne comprends pas pourquoi les gens ont tellement peur d'utiliser des tables).
Les Tables sont en effet une solution. Je me demandais simplement si il y a des alternatives.
display:table / table-row / table-cell pour le sauvetage?
pourrait sans aucun doute aller pour les flexbox avec un repli ou CSS table.
Pouvez-vous utiliser le CSS3?

OriginalL'auteur Grodriguez | 2013-08-26