There are many reasons CSS sucks, but here are the main two:
- CSS relies on hierarchy for positioning, visibility & property inheritance. Therefore, it cannot be separated from the markup & interaction like some HTML purists suggest.
- When positioning elements, one of two options can be used:
- In the flow, which means automatic height & collection of inline assets into blocks, but very hard to tweak the default decisions.
- Out of the flow, which more or less forces use of fixed dimensions for anything positioned this way.
If you still think CSS is awesome, try this: In a large text box, position a fixed-dimension image at the bottom-right, such that text will wrap around it.
I hope to further look into the workings of CSS in future posts.