Note CSS’s ability to drive layout without driving developers crazy has been a long time coming. It’s pretty much always been a sore spot.
The web stack’s long history of somewhat less than stellar layout support is caused by a few things, in my opinion. First, we had tables, and tables sufficed to some degree. Sure, they were never the right place to define your layout, but were sufficient. Second, web development targets many browsers on a variety of devices, and attempts to define a document that adapts to its display. ...