Bởi vì CSS không phải là ngôn ngữ lập trình, thay vào đó, nó là tệp cấu hình chứa dữ liệu biến cho chương trình của bạn.
Hiện tại CSS mạnh đến mức bạn thực sự có thể lập trình trong đó, nhưng đó là điểm chính. Về bản chất nó vẫn là một ngôn ngữ bản định kiểu .
Hãy lùi lại một bước. Hãy tưởng tượng chúng ta có một ngôn ngữ lập trình có thể vẽ trên màn hình. Hãy tưởng tượng chúng ta muốn lập trình nó để vẽ một trang web.
Đầu tiên, chúng tôi sẽ nhập hàng tấn số ma thuật vào mã của chúng tôi. Chiều rộng lề, chiều cao văn bản, thụt lề, v.v.
jump(100) // The margin
drawTable(500, 500)
writeText("Hello World", 12)
Vì vậy, chúng tôi trích xuất các số ma thuật, và đặt chúng lên đầu tệp của chúng tôi.
int margin = 100
int table = 500
int text_size = 12
jump(margin) // The margin
drawTable(table, table)
writeText("Hello World", text_size)
Bây giờ điều này là một chút xấu xí. Chúng tôi thay vì đọc số biến của chúng tôi từ một tập tin cấu hình.
margin 100
table 500
text size 12
Mm, điều đó hơi không rõ ràng ... Những con số đó có ý nghĩa gì? Những cái tên đó có ý nghĩa gì? Hãy chính thức hóa nó một chút.
margin_left 10em
table_width 500px
table_height 500px
font_size 12px
Nhưng bạn biết đấy, chúng tôi muốn mở rộng chương trình của chúng tôi một chút. Chúng tôi cũng muốn nó vẽ các trang có nhiều bảng, trang không có bảng, trang có đoạn hoặc nút và hơn thế nữa. Hãy thêm các bộ chọn vào tệp cấu hình của chúng tôi để chúng tôi có thể chỉ định đoạn nào sẽ có phông chữ lớn hơn hoặc màu văn bản khác, có lẽ chúng tôi có thể hỗ trợ các phần tử lồng nhau, có lẽ chúng tôi có thể sử dụng một thuộc tính chung trong tệp cấu hình của mình và sau đó ghi đè lên một tệp cụ thể một trong một vài yếu tố lồng nhau.
Bạn cảm thấy nơi này đang diễn ra, cuối cùng bạn đến dưới dạng CSS. (Và một trình duyệt để kết xuất nó.)
Sau đó chúng ta có nên thêm các khả năng vào tệp cấu hình của mình để có thể tránh các số ma thuật một lần nữa không? Thêm biến? Thêm một tệp cấu hình cho tệp CSS của chúng tôi? Sẽ cảm thấy hơi vô nghĩa nếu bạn nhớ tệp CSS của chúng tôi là tệp cấu hình rất giống nhau.
Nhưng điều đó không đúng trong khóa học; Tệp CSS của bạn ngày càng lớn hơn và cuối cùng bạn gặp phải các vấn đề tương tự như với các số ma thuật ban đầu, cùng một số được lặp lại ở mọi nơi, đôi khi có một biến đổi nhỏ, v.v.
CSS hiện đại, tuy nhiên, cho phép nhiều cách để tránh sự lặp lại này. Bạn có thể sử dụng các lớp áp dụng cho nhiều thành phần, bạn có thể đặt kiểu cho tất cả các div
s, nhưng sau đó ghi đè một lớp cụ thể và CSS 3 thậm chí cho phép một số loại sử dụng biến.
Điều đó không có nghĩa là bạn cần bắt đầu sử dụng biến CSS ở mọi vị trí có thể. Sử dụng nó ở nơi có ý nghĩa và sử dụng nó ở nơi bạn tránh trùng lặp hoặc nơi các kỹ thuật khác cũng có sẵn bị thiếu.
Cuối cùng, bạn cũng không muốn có quá nhiều số ma thuật trong tệp cấu hình của mình :-)