Đã đến lúc công nhận CSS là một ngôn ngữ lập trình thực thụ
CSS thường bị xem nhẹ như một ngôn ngữ "trang trí" và bị gạt ra ngoài định nghĩa lập trình chính thống. Nhưng sau ba thập kỷ phát triển, CSS đã trở nên vô cùng mạnh mẽ, từ việc tái tạo Doom đến xây dựng công cụ truy vấn dữ liệu, đồng thời đóng vai trò cánh cửa dẫn vào ngành công nghệ cho những ai không thuộc khuôn mẫu kỹ sư truyền thống.

Chữ S đầu tiên trong CSS là viết tắt của "style" (kiểu dáng). Màu sắc và phông chữ, viền và bóng đổ, hàng và cột, hiệu ứng động và chuyển tiếp — CSS chính là ngôn ngữ lập trình khiến một trang web trở nên đẹp mắt (hoặc đôi khi xấu tệ). Nó là thứ khiến chính trang web bạn đang đọc trông ra dáng một trang web.
Ngay từ đoạn mở đầu này, một số độc giả khó tính đã bắt đầu khó chịu với cách gọi của tôi. "Đó là ngôn ngữ bảng kiểu dáng (style sheet language), không phải ngôn ngữ lập trình," tôi như nghe thấy họ nói vậy. Hoặc: "Nó là ngôn ngữ chuyên biệt theo lĩnh vực, không phải ngôn ngữ đa dụng." Hay: "Nó không thực thi được" và dĩ nhiên cả câu kinh điển: "Nó không có tính Turing hoàn chỉnh."
Công bằng mà nói, CSS có hơi khác biệt. Nó không có bước biên dịch, và không báo lỗi khi chạy như các ngôn ngữ khác. Nhưng tất cả những điều đó đều không phải là vấn đề cốt lõi.
Đơn giản không có nghĩa là dễ
"Đơn giản không có nghĩa là dễ." — Jeremy Keith, lập trình viên kiêm tác giả
Sự phân biệt đối xử về việc liệu CSS có phải là ngôn ngữ lập trình "thực thụ" hay không một phần bắt nguồn từ chỗ nó quá dễ để bắt đầu — ai cũng hiểu ngay "background: red" nghĩa là gì. Nhưng cái mác "dễ" hay "không nghiêm túc" dành cho CSS đã đến lúc phải bỏ đi.
Đặc tả CSS ban đầu năm 1996 chỉ có khoảng 50 thuộc tính (như "color" và "font-size"). Ngày nay con số đó đã tăng ít nhất gấp 10 lần. Trong ba thập kỷ, ngôn ngữ này đã thay đổi đến mức khó theo kịp, và giờ đây nó vô cùng mạnh mẽ.
- Một lập trình viên đã tái tạo trò chơi Doom hoàn chỉnh bằng CSS
- Những người khác dùng CSS để tạo thẻ Pokémon ba chiều và cả engine dựng hình 3D
- Cassidy Williams, người tham gia giải đấu March MadCSS đầu tiên, đã xây dựng một engine truy vấn cơ sở dữ liệu thử nghiệm hoàn toàn bằng CSS
Khi cô trình diễn sản phẩm này tại hội nghị Microsoft Build, ngay cả những người dẫn chương trình — vốn là những lập trình viên dày dạn — cũng tranh thủ mỉa mai CSS. "Cô là một trong những người thích nó," họ châm chọc. "Có khi cô là người duy nhất đấy."
Câu chuyện bị lãng quên về người tạo ra CSS
Tại sao câu chuyện về sự ra đời của JavaScript lại nổi tiếng đến vậy (Brendan Eich, Netscape, 10 ngày), trong khi hầu như không lập trình viên nào nhận ra tên của Håkon Wium Lie — cha đẻ của CSS?
Có thể một phần là do Lie là một người Na Uy với dấu phụ trong tên, chứ không phải một người Mỹ ở Thung lũng Silicon như Eich, cũng không phải người Anh như Tim Berners-Lee — người phát minh ra HTML.
Bộ ba JavaScript - HTML - CSS tạo nên trình duyệt web, nhưng người ta thường coi CSS là thứ hạng thấp hơn hoặc thuần túy trang trí. Tạo kiểu dáng có thể mang tính trang trí — và điều đó thật tuyệt vời — nhưng khả năng đọc hiểu và thiết kế phong phú mà CSS mang lại mới là điều quan trọng. Người ta quan tâm đến vẻ ngoài của mọi thứ!
Góc nhìn kém đẹp hơn: CSS bị coi là ngôn ngữ "nữ tính"
Có một lời giải thích khác, khó nghe hơn, cho sự coi thường CSS: nó bị xem là một ngôn ngữ "nữ tính". Lập trình viên CSS làm việc ở frontend — phần của trang web mà người dùng thực sự nhìn thấy.
Ẩn ý rõ ràng ở đây là việc xử lý kiểu dáng và cái đẹp là "công việc phụ nữ", đi kèm với trò đùa cũ rích rằng lập trình viên CSS là "đồ quái dị trong bảng kiểu dáng".
Cách một ngôn ngữ được nhìn nhận nghiêm túc đến đâu có tác động dây chuyền đến mức lương lập trình viên, những kỹ năng được tìm kiếm và kiểm tra trong phỏng vấn tuyển dụng, và khả năng tiếp cận trang web của người khuyết tật.
Một người bạn của tác giả — một kỹ sư backend tài năng — kể rằng dù chưa bao giờ bày tỏ hứng thú với frontend, cô vẫn bị phân công ngay vào vai trò frontend khi mới vào công ty chính thức. Cô chia sẻ đã quen với sự hoài nghi: "Tôi đã ở trong hàng triệu cuộc trò chuyện kiểu kỹ sư nam kinh điển, những người không tin tôi biết mình đang nói gì cho đến khi làm việc với tôi sáu tháng và thấy dự án backend đầu tiên của tôi."
Mặt tươi sáng: CSS là cánh cửa dẫn vào ngành
Chính người bạn đó từng dạy tại Kode With Klossy — trại công nghệ cho nữ sinh và học sinh đa dạng giới do siêu mẫu Karlie Kloss sáng lập.
"Các bạn gái đến đây không hề quan tâm đến lập trình, chỉ nghĩ Karlie Kloss ngầu thôi, và họ thấy vui cực kỳ. Rồi họ dần quan tâm hơn đến việc: Ừ nhỉ, cái này hoạt động thế nào?"
CSS có thể là cửa ngõ vào ngành phần mềm cho những người không khớp với khuôn mẫu "cậu bé mọt máy tính". Trong ngành, tỷ lệ đa dạng giới ở các vị trí frontend engineering có tốt hơn một chút (nhưng vẫn rất tệ) so với backend thuần túy. Khảo sát State of CSS năm ngoái cho thấy 11% người trả lời là nữ và 3% là phi nhị nguyên, trong khi State of JavaScript chỉ có 6% nữ và 1% phi nhị nguyên.
Hệ quả: Các trang web ngày càng giống nhau
Một hệ quả khác của việc xem nhẹ CSS là sự giống nhau nhàm chán của các trang web trên internet, đặc biệt trong giới startup. Nếu CSS là thứ khiến một trang web mang bản sắc riêng, thì các framework thời trang nhanh gần đây lại khiến chúng trông na ná nhau.
Đã có thời đại Bootstrap, rồi phong cách Tailwind, và giờ là thẩm mỹ "Claudeslop" đặc trưng. Framework giống như đồ thể thao — nếu bạn không quan tâm đến thời trang, chúng là lối tắt để trông tạm ổn. Công bằng mà nói thì điều đó chấp nhận được, nhưng nó khiến người ta chạnh lòng.
CSS của ngày hôm nay không còn như xưa
WIRED là một trong những trang web lớn đầu tiên áp dụng CSS. Vào thời điểm đó, chưa có Flexbox hay Grid, chưa có custom properties, và chưa có @keyframes, transitions hay transforms để tạo hiệu ứng động không cần JavaScript.
Chỉ trong thập kỷ này, rất nhiều tính năng CSS mạnh mẽ đã xuất hiện trên trình duyệt:
- Container queries — truy vấn theo kích thước phần tử chứa
- Pseudo-class :has() — chọn phần tử dựa trên nội dung con
- Không gian màu mới như oklch() — dải màu rộng và chính xác hơn
- Hỗ trợ ngôn ngữ viết từ phải sang trái như tiếng Hebrew và tiếng Ả Rập
- Nội suy vị trí để tạo hiệu ứng động và gradient mượt mà
- if() conditionals và @function đang được phát triển
Với những bổ sung này, ngay cả những lập luận kiểu "về mặt kỹ thuật mà nói..." giải thích tại sao CSS không phải ngôn ngữ lập trình chính thống có lẽ cũng sẽ phải khép lại. Đây không còn là CSS của thế hệ trước nữa.
Lời kết: Sức mạnh của sự đơn giản
Việc CSS dễ bắt đầu nhưng sâu sắc để khám phá và làm chủ chính là lý do tôi yêu nó đến vậy. Đây là ngôn ngữ gần nhất với khái niệm "lập trình cho người dùng cuối" — ý tưởng rằng phần mềm nên có thể được tùy biến bởi bất kỳ ai.
Bảng kiểu dáng cũng giống như bảng tính ở điểm đó: một người mới có thể tạo ra thứ hữu ích trong một giờ, và chuyên gia có thể tạo ra cả trò chơi Doom.
Đã đến lúc chúng ta ngừng coi CSS là ngôn ngữ hạng hai. Nó xứng đáng được công nhận là một ngôn ngữ lập trình thực thụ — mạnh mẽ, sâu sắc và đầy tiềm năng.
Bài viết liên quan

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Đánh giá máy in 3D Bambu Lab P2S Combo: Nhà máy nhựa nhỏ ngay trong nhà bạn
21 tháng 9, 2026