I think this was true for a long time, but now that we have flex, grid, nesting and a wide range of relative units to name a few modern features... the syntax for some of these can be a bit obtuse, but I don't really feel like the language is missing anything I need to lay out an application that adapts to any screen it's presented on.
Even with flex we still don't have a good way to center a list of div's. In fact the intuitive way, `justify-content: center;`, has a hidden foot gun that to this day breaks countless sites on mobile: content overflowing to the left of the parent container is entirely lost, whereas content overflowing to the right is scroll-accessible. And there's no easy fix for this! (Please Cunningham's Law, please...)
I cannot fathom how data-loss by default could ever be considered a logical answer to "hey guys we need need to start from the ground up to come up with a system for arranging elements because the old way was so busted".
Mm yeah you can definitely do it now, but consider the trivial task of putting two independently scrollable pages side by side.
It's actually very fiddly in CSS, whereas with something like Qt or Flutter or whatever it's completely trivial - just add a splitter and then two scrollable views. (And good luck if you want an actual movable splitter with CSS.)
Flexbox makes app-like layout possible, but still not easy.