Context: Tables were used for static content, then came transparent 1px gif, then JavaScript to create a hover effect for buttons.
Enter CSS.
Today's content is very different. Today complex applications that were 20 years ago bound to the desktop are (re-) created using Web technology.
This seems overkill for some apps like landingpages, however complex apps benefit from CSS that reacts to its context. Otherwise you would be very JavaScript heavy on those layout things and that is pretty much the essence: CSS3/4 pretty much did what JavaScript layout tools did but native.
Ok, but you still need tons of JavaScript for webapps, and the trend has been to generate inline styles using JavaScript, JSX/React etc. anyway. Not sure introducing the complexity for webapps, with the content-oriented web as collateral damage, was worth it.
Enter CSS.
Today's content is very different. Today complex applications that were 20 years ago bound to the desktop are (re-) created using Web technology.
This seems overkill for some apps like landingpages, however complex apps benefit from CSS that reacts to its context. Otherwise you would be very JavaScript heavy on those layout things and that is pretty much the essence: CSS3/4 pretty much did what JavaScript layout tools did but native.