here is what I came up with:
.main>* {
display: inline-block;
width: 33%;
}
<div class='main'>
<div class='left'>abc</div>
<div class='center'>def</div>
</div>
As demonstrated here.
Yet another solution
This solution will always place .left
first.
HTML
<div class='main'>
<div class='center'>def</div>
<div class='left'>abc</div>
</div>
CSS
.main {
display: flex;
flex-flow: row;
flex-wrap: no-wrap;
}
.main > .left {
order: 1;
}
.main > .center {
order: 2;
}
And if you want your inner-boxes to have same width:
.main > * {
flex-basis: 33%;
}