Say what you will about table based layouts, but they sure are backwards compatible.
Could you give an example? I've done "tables" in CSS, and most of the time you're using DIV to manage most of the positioning, which is non-semantic.
If there was a CSS table replacement which defaulted back to something which looked like a table in HTML, I'd be impressed.
If you're building a navigation area, a callout, or some similar semantically significant sidebar, take a look at https://html.spec.whatwg.org/multipage/dom.html#sectioning-c... for the nav and aside elements.
But even if you use a div, as long as the semantic content makes sense without the div, you're fine. For instance, put one div with your article content starting with an appropriate heading tag, and another div for your navigation. Without the CSS, it still makes sense to have a section for content and a section for navigation.
Also, there is actually CSS markup to make something look like a table, if that's what you want; see http://caniuse.com/#feat=css-table for instance.
Still valid after all these years.
<table style='height: 100%; width: 100%'>
<tr><td align=center valign=center>
<h1>Hello world</h1>
The following button should be centered:<br>
<button>Button</button>
</td></tr>
</table>
Can you reproduce that with flexbox? In a way that works across all browsers? Without writing huge amounts of code?[NOTE: This example has a bug in it. See the subsequent comments]
<table style='height: 100%; width: 100%'>
<tr><td align=center valign=center>
<h1>Hello world</h1>
The following green square should be centered:<br>
<div style='width: 30px; height: 30px; background: green'></div>
</td></tr>
</table>
margin:auto also requires you to manually set the width of the div you're trying to center in order to work.The devil is in the details. I believe if you try it you will find it is nowhere near as easy as you imagine.