./451 : Ma compréhension c'est que HTML (et incidemment les CSS) a été prévu pour décrire des documents dans lesquels on fixe une largeur, puis la hauteur des éléments s'adapte au contenu (le "puis" dans cette phrase est à comprendre chronologiquement, dans le processus de rendu d'une page).
Ce choix implique que c'est très facile de décrire la largeur d'un élément (en absolu ou relatif), de centrer horizontalement un élément (puisqu'on connait la largeur de son conteneur avant de faire ce choix) ou encore de déclarer un élément qui fait "toute la largeur de la page" (le comportement par défaut du type "block"). À l'inverse, tout ce qui s'exprime sous forme de contrainte sur la hauteur d'un élément est toujours casse-gueule : le centrage vertical, les éléments à hauteur fixe, les éléments dont la taille dépend de celle de leurs parents (ou plus exactement qui dépendent du bord bas de leur parent, avec des trucs comme "bottom: 10px" en CSS qui déclenchent un véritable enfer sur une page non triviale), etc.
Le nouveau modèle que proposent les flexbox est plus sain : on commence par définir une hauteur en absolu ou relative à la hauteur de la fenêtre entière (la seule chose à peu près fiable quand on joue avec des hauteurs), puis ensuite on a tout une nouvelle palette d'outils pour définir des contraintes relatives qui n'héritent pas du modèle traditionnel et ne provoquent pas d'exceptions avec la moitié des directives CSS existantes.