Answer based on this page about Flexbox. Works on Chrome, Firefox and IE 11.
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
If you scroll all the way down on that page to the bit just before the "Prefixing Flexbox" section, there is an image which looks like this:

To suit our purpose, all that's needed is to:
- remove all boxes but two of the middle ones
- add margins
- Use display: flex to make sure they don't fall below each other when resizing the page.
- Make them the same width
Final result:

Here is the modified code used to achieve this (.htm page):
<html>
<head>
<style>
.wrapper {
display: flex;
flex-flow: row;
font-weight: bold;
text-align: center;
}
.wrapper > * {
padding: 10px;
flex: 1 100%;
}
.d1 {
text-align: left;
background: deepskyblue;
margin: 20px;
}
.d2 {
text-align: left;
background: gold;
margin: 20px;
}
@media all and (min-width: 600px) {
.aside { flex: 1 auto; }
}
@media all and (min-width: 800px) {
.d1 { order: 1; }
.d2 { order: 2; }
}
body {
padding: 2em;
}
</style>
</head>
<body>
<div style="border: 1px solid black;">
<div class="wrapper">
<article class="d1">
<p>
</p>
</article>
<article class="d2">
<p>
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
</p>
</article>
</div>
</div>
</body>
</html>