Warum füllt ein flexibles Element mit Polstern auf?

In dem Snippet darunter hat die erste Zeile zwei Divs mitflex-grow: 1. Wie erwartet nimmt jede Div 50% des Bildschirms ein.

Wenn Sie dem linken Div ein Füllzeichen hinzufügen, ist dies nicht mehr der Fall. Kann mir jemand erklären warum?

body > div {
  height: 50px;
  display: flex;
}
body > div > div {
  flex: 1;
  box-sizing: border-box;
}
#a {
  background-color: red;
}
#b {
  background-color: green;
}
#c {
  padding: 10px;
  background-color: blue;
}
#d {
  background-color: yellow;
}
<div>
  <div id="a"></div>
  <div id="b"></div>
</div>
<div>
  <div id="c"></div>
  <div id="d"></div>
</div>

Antworten auf die Frage(4)

Ihre Antwort auf die Frage