IF a table width is specified AND table-layout:fixed is applied, then the cells are of equal widths regardless of content.
IF no table width is applied, then the cells hug their contents.
IF a table width is specified and the default table-layout is used, the width of the cells is more-or-less proprtional to the width of the contents. Cells with wider contents being given more space at the right and left sides.
The text on the right is shorter than the text on the left, so the right cell is smaller.
In addition to ronpat’s explanation, you can also set cell widths explicitly if you require it:-
Widths assigned to table-cells are interpreted as min-width… they are “only a suggestion”, a starting point, and can change if content pushes them to change unless table-layout:fixed and a width is assigned to the display:table element. In that vein, the magic behind Paul’s ultimate sticky footer (that uses table-rows/cells) is the ability to assign a table-cell a height of 1px and rely on content to force it to extend.
It is not a reference to Paul, but to his Ultimate Sticky Footer design that uses CSS table “elements” and depends on the standard table behavior whereby a cell with a height of 1px will extend to fit it contents.
It’s a practical, working example of that table behavior.
When I think about it, that default behaviour, where width acts as min-width may be useful in this case, making the layout responsive. It will space out the elements on the wide screen, then make more effective use of space when things get tight.