JSFiddle - React, Tailwind, and code Playground
HTML
<div class="container">
<!-- Bad double-applied fractions in Chrome:
items size to 40% (80px) and 50% (100px) of their max-content size (200px each),
so the grid container is 180px wide,
then they fill 40% and 50% of that space,
smaller than their original requested size.
-->
<div class="grid" style="grid-template-columns: 0.4fr 0.5fr;">
<div class="grid-item"><div class="inlineBlock"></div><div class="inlineBlock"></div></div>
<div class="grid-item"><div class="inlineBlock"></div><div class="inlineBlock"></div></div>
</div>
<!-- Good fractions in Chrome:
items size to 50% (100px) and 100% (200px) of their max-content size (200px each)
so the grid container is 300px wide,
then they fill 1/3 and 2/3 of that space,
exactly their original requested size.
-->
<div class="grid" style="grid-template-columns: 0.5fr 1fr;">
<div class="grid-item"><div class="inlineBlock"></div><div class="inlineBlock"></div></div>
<div class="grid-item"><div class="inlineBlock"></div><div class="inlineBlock"></div></div>
</div>
</div>
<!-- Same examples, but translated to Flexbox now. -->
<div class="container">
<div class="flex">
<div class="flex-item" style="flex: .4;"><div class="inlineBlock"></div><div class="inlineBlock"></div></div>
<div class="flex-item" style="flex: .5;"><div class="inlineBlock"></div><div class="inlineBlock"></div></div>
</div>
<div class="flex">
<div class="flex-item" style="flex: .5;"><div class="inlineBlock"></div><div class="inlineBlock"></div></div>
<div class="flex-item" style="flex: 1;"><div class="inlineBlock"></div><div class="inlineBlock"></div></div>
</div>
</div>
CSS
.grid-item {
min-width: 0px;
}
.grid {
display: grid;
background: orange;
border:5px solid red;
float: left;
clear: both;
}
.flex {
display: flex;
background: orange;
border: 5px solid red;
float: left;
clear: both;
}
.inlineBlock {
display:inline-block;
width: 100px;
box-sizing: border-box;
background:gray;
height:20px;
border:1px solid black;
}
.container {
width:500px;
height:200px;
border:1px solid black;
background-image: repeating-linear-gradient(to right, white 0px, white 99px, silver 99px, silver 100px);
}
.grid > :nth-child(1), .flex > :nth-child(1) {background: lightblue;}
.grid > :nth-child(2), .flex > :nth-child(2) {background: yellow;}