TL;DR
A developer argues that much of the frustration with CSS comes from not investing time to learn how it actually works. The piece recommends structured learning and warns that quick hacks, frameworks, and misuse of positioning create brittle, hard-to-maintain layouts.
What happened
In a blog post, Ibrahim Diallo challenges the common complaint that “CSS sucks,” arguing the gripe often reflects a lack of deliberate study rather than an inherent flaw in the technology. He says many programmers treat CSS as an afterthought, learning syntax on the fly while building applications and then applying quick fixes or frameworks like Bootstrap to get results. That approach produces fragile markup and styles—examples include overusing !important, relying on position: absolute, and creating convoluted HTML structures that only appear to work until conditions change. Diallo notes long-standing quirks (centering in older CSS versions, margin: 0 auto, oddities of pseudo-element content) and observes that newer tools like flexbox can mask poor structure. His remedy is straightforward: take real time to learn layout and design with experienced instruction, and adopt disciplined practices so CSS is planned and maintainable rather than patched into place.
Why it matters
- Layouts built with shallow or ad-hoc CSS knowledge tend to break when conditions change, increasing maintenance costs.
- Relying on hacks or blanket frameworks can produce technical debt that complicates future design changes.
- Understanding CSS behavior enables developers to plan for maintainable, resilient UI rather than patching visual issues.
- Treating presentation as an integral part of development improves the user-facing quality of applications.
Key facts
- The author asserts many developers complain about CSS because they never spent time learning it properly.
- Learning CSS syntax can be quick, but using it effectively for design and layout requires planning and practice.
- Common bad practices cited include sprinkling many classes in HTML, overusing !important, and positioning elements absolutely.
- Older CSS (CSS2) had awkward centering workflows; CSS3 features like flexbox can hide underlying structural problems.
- The author recommends following a course with an experienced instructor to learn page design and CSS usage.
- Advice offered includes generally avoiding position: absolute to force better layout decisions and discipline.
- The author references Peter Norvig’s essay ‘Teach Yourself Programming in Ten Years’ to emphasize long-term skill development.
- Specific CSS quirks mentioned: margin: 0 auto for centering block elements and the content property in pseudo-selectors.
What to watch next
- Avoid using position: absolute as a default layout tool—its misuse often causes breakage across screen sizes.
- Be cautious about applying many quick fixes or !important rules; they can make stylesheets hard to maintain.
- Relying on a framework without understanding underlying CSS can produce brittle HTML and styling that’s difficult to change.
Quick glossary
- CSS: Cascading Style Sheets: a language used to describe the presentation (layout, colors, fonts) of HTML documents.
- Flexbox: A CSS layout model that provides a way to distribute space and align items within a container, often used for responsive layouts.
- position: absolute: A CSS positioning mode that removes an element from the normal document flow and places it at specified coordinates relative to the nearest positioned ancestor.
- !important: A CSS declaration qualifier that increases a rule’s priority, overriding other declarations with lower specificity or normal cascade order.
- Bootstrap: A front-end framework that provides prebuilt CSS and JavaScript components to speed up UI development; using it without understanding CSS can lead to maintenance issues.
Reader FAQ
Why do people say 'CSS sucks'?
The author argues the complaint often stems from not taking time to learn CSS properly and relying on quick hacks instead of planned approaches.
Is CSS a programming language?
The piece notes CSS isn’t a programming language per se, but says mastering its application requires effort similar to other development skills.
Can you learn CSS quickly?
According to the author, you can pick up syntax quickly, but becoming effective at solving layout and design problems takes sustained practice.
Should I avoid position: absolute?
The author recommends avoiding it as a default; restricting its use helps developers recognize appropriate cases and prevents brittle layouts.

CSS sucks because we don't bother learning it. Try learning and you won't complain anymore By Ibrahim Diallo Published Mar 24 2022 ~ 4 minutes read Fund this Blog Careers…
Sources
- CSS sucks because we don't bother learning it (2022)
- Why is people so bad at css?
- CSS isn't broken, your developers just suck at it
- CSS Sucks and I Hate it – Web Development
Related posts
- Ozempic Shrinks Pounds — and Challenges the Concept of Body Positivity
- Why a developer switched from VSCode to Zed: a firsthand account
- Simple New-Year Steps to Make Your Apple Devices Easier and Healthier