Répartition proportionnelle de l'espace pour tous les items

Sans taille flexible

Version avec conteneur en display:flex mais propriété flex des items non modifiée, pour comparer :

Même chose avec moins de contenu dans les items :

Avec taille flexible

Tous les items sont en flex:1. Ils se répartissent l'espace supplémentaire de manière équitable. Redimensionner la fenêtre !

Pièges

L'espace disponible est ajouté au contenu des items. Les paddings et bordures faussent la proportionnalité. Exemple identique au précédent mais où le premier item a une grosse bordure :

Il est beaucoup plus gros que les autres, alors qu'il a la même valeur de flex (et box-sizing:border-box n'y change rien). Solution, si vraiment besoin d'éviter ça : ajouter une boîte « intermédiaire », sans padding ni bordure, dans les flex items :

S'il y a suffisamment d'espace sur la ligne (dézoomer si besoin), tous les items devraient avoir la même largeur. (Évidemment il faudrait déstyler les li pour obtenir l'effet voulu, je laisse comme ça pour que ce que j'ai fait soit plus visible.)

Autre piège : s'il n'y a pas assez d'espace, la largeur des items va dépendre de leur contenu. Il n'y a aucune garantie de proportionnalité dans toutes les situations. Vérifier ce qui se passe en redimensionnant la fenêtre (surtout dans la section précédente).