column-fill: balance;
is supposed to "divide content equally between columns". It seems to be working properly in Firefox and Edge. But Chrome (and Opera) seem to really dislike the second column, leaving it mostly empty.
It seems to be related to the height of the elements, but I can't figure out exactly how. In the first example, I'd expect the second paragraph to be in the second column, but Chrome puts them both in the left column, leaving the right one empty.
The second example shows a different similarly unbalanced example.
div {
border: solid blue 3px;
column-count: 2;
column-fill: balance;
}
p {
border: solid red 3px;
break-inside: avoid;
}
.second { height: 100px; }
<div>
<p>plain</p>
<p class=second>.second</p>
</div>
<hr>
<div>
<p>plain</p>
<p>plain</p>
<p>plain</p>
<p class=second>.second</p>
<p>plain</p>
</div>
Is this a bug? Am I missing something that all the other browser vendors are too?
And more importantly, how can I get something like this to work, possibly even resorting to nasty hacks?
Update: Apparently, it's not limited to exactly 2 columns