HTML (HyperText Markup Language) do Tim Berners-Lee tạo năm 1991, ban đầu chỉ định nghĩa cấu trúc ngữ nghĩa (heading, paragraph, link...). Trình duyệt tự quyết định hiển thị.
CSS (Cascading Style Sheets) do Håkon Wium Lie đề xuất 10/10/1994, chuẩn hóa bởi W3C CSS Working Group. CSS1 phát hành 12/1996.
Tại sao cần CSS?
| HTML thuần túy (trước CSS) | Với CSS |
|---|---|
Style nhúng trong tag: <font color="red">, bgcolor, align | Tách hoàn toàn cấu trúc (HTML) và trình bày (CSS) |
| Lặp lại style cho mỗi element → mã rối, khó bảo trì | Một rule CSS áp dụng cho nhiều element (selector) |
| Không thể thay đổi giao diện toàn site dễ dàng | Sửa 1 file CSS → cập nhật toàn bộ site |
| Không hỗ trợ responsive, media queries | Media queries, flexible layout (Flexbox, Grid) |
| Table layout cho bố cục → semantic kém, accessibility thấp | Semantic HTML + CSS layout hiện đại |
Lợi ích cốt lõi của CSS
- Separation of Concerns: HTML lo cấu trúc, CSS lo giao diện.
- Reusability: Một class dùng cho nhiều element.
- Maintainability: Sửa giao diện tập trung một chỗ.
- Performance: CSS cache riêng, browser tối ưu render.
- Accessibility: Screen reader đọc HTML semantic, không bị nhiễu style.
- Responsive: Media queries thích ứng màn hình.
CSS không thay thế HTML, mà bổ sung để HTML tập trung vào ngữ nghĩa.