CSS Biến: Mở Rộng Kỹ Năng CSS của Bạn

Xin chào các bạn nhà phát triển web đang trên đà trở thành chuyên gia! Hôm nay, chúng ta sẽ cùng nhau khám phá thế giới đầy thú vị của CSS Variables. Là người giáo viên máy tính gần gũi của bạn, tôi rất vui mừng được dẫn dắt các bạn trong hành trình này. Tin tôi đi, đến cuối bài hướng dẫn này, bạn sẽ sử dụng CSS Variables như một chuyên gia!

CSS - Variables

CSS Variables Là Gì?

CSS Variables, còn được gọi là CSS Custom Properties, là các thực thể cho phép bạn lưu trữ các giá trị cụ thể để sử dụng lại trong suốt stylesheet của bạn. Hãy tưởng tượng chúng như những bình chứa giữ các màu sắc yêu thích, kích thước, hoặc bất kỳ giá trị CSS nào bạn thường xuyên sử dụng.

Hãy bắt đầu với một ví dụ đơn giản:

:root {
--main-color: #3498db;
}

.button {
background-color: var(--main-color);
}

Trong đoạn mã này, chúng ta đã định nghĩa một biến --main-color và sử dụng nó để thiết lập màu nền của một nút. Đúng là rất tuyệt vời, phải không?

Cách Tiêu Chuẩn để Sử Dụng CSS Variables

Cách tiêu chuẩn để khai báo CSS Variables là sử dụng hai dấu gạch ngang (--) tiếp theo là tên biến. Dưới đây là cách nó hoạt động:

.container {
--padding: 20px;
--font-size: 16px;
}

.box {
padding: var(--padding);
font-size: var(--font-size);
}

Trong ví dụ này, chúng ta đã định nghĩa hai biến, --padding--font-size, trong lớp .container. Sau đó, chúng ta sử dụng các biến này trong lớp .box. Cách tiếp cận này cho phép dễ dàng cập nhật - chỉ cần thay đổi giá trị của biến một lần, và nó sẽ được cập nhật ở mọi nơi!

CSS Variables - Pseudo-class :root

Pseudo-class :root giống như siêu anh hùng của CSS - nó đại diện cho phần cha ở cấp độ cao nhất trong cây DOM. Khi chúng ta khai báo các biến ở đây, chúng sẽ trở thành biến toàn cục. Hãy cùng xem nó hoạt động như thế nào:

:root {
--primary-color: #e74c3c;
--secondary-color: #2ecc71;
}

.header {
background-color: var(--primary-color);
}

.footer {
color: var(--secondary-color);
}

Bằng cách xác định các biến màu trong :root, chúng ta có thể sử dụng chúng ở bất kỳ đâu trong stylesheet. Đó như thể bạn có một bảng màu ngay tại fingertips của mình!

CSS Variables - Kế Thừa Của Các Tính Năng Tùy Chỉnh

Một trong những tính năng thú vị nhất của CSS Variables là chúng kế thừa giá trị từ các phần tử cha. Đó như một cây gia đình của các phong cách! Hãy kiểm tra điều này:

.parent {
--font-size: 18px;
}

.child {
font-size: var(--font-size);
}

.grandchild {
/* Đây cũng sẽ là 18px */
font-size: var(--font-size);
}

Trong ví dụ này, cả .child.grandchild kế thừa giá trị --font-size từ .parent. Đó là một cách tuyệt vời để duy trì sự nhất quán trong thiết kế của bạn.

CSS Variables - Giá Trị Fallback

Đôi khi, mọi thứ không diễn ra như kế hoạch. Nhưng đừng lo lắng! CSS Variables có thể hỗ trợ bạn với giá trị fallback. Dưới đây là cách nó hoạt động:

.button {
/* Nếu --button-color không được xác định, nó sẽ sử dụng màu xanh lam */
background-color: var(--button-color, blue);
}

Đây như thể bạn có một kế hoạch dự phòng. Nếu --button-color không được xác định, nút của bạn sẽ có màu xanh lam. Luôn tốt hơn khi có một mạng an toàn!

CSS Variables - Xử Lý Các Tính Năng Tùy Chỉnh Không Hợp Lệ

Vậy điều gì sẽ xảy ra khi một biến CSS không hợp lệ? Hãy cùng tìm hiểu:

:root {
--text-color: 123;
}

.text {
/* Điều này sẽ không hoạt động như mong đợi */
color: var(--text-color);

/* Điều này sẽ sử dụng giá trị fallback đen */
color: var(--text-color, black);
}

Trong trường hợp đầu tiên, trình duyệt sẽ bỏ qua giá trị không hợp lệ và sử dụng giá trị kế thừa hoặc giá trị mặc định cho color. Trong trường hợp thứ hai, nó sẽ sử dụng giá trị fallback black. Luôn kiểm tra các biến của bạn để tránh kết quả không mong muốn!

CSS Variables - Giá Trị Trong JavaScript

Sự kỳ diệu thực sự xảy ra khi chúng ta kết hợp CSS Variables với JavaScript. Đó như thể bạn đã赋予 superpowers cho phong cách của mình! Dưới đây là một chút trải nghiệm:

// Lấy phần tử root
const root = document.documentElement;

// Đặt một biến
root.style.setProperty('--main-color', '#9b59b6');

// Lấy một biến
const mainColor = getComputedStyle(root).getPropertyValue('--main-color');

console.log(mainColor); // Xuất: #9b59b6

Điều này cho phép bạn thay đổi phong cách của bạn một cách linh hoạt dựa trên tương tác của người dùng, thời gian trong ngày, hoặc bất kỳ yếu tố nào bạn có thể nghĩ đến!

Kết Luận

CSS Variables là một bước đột phá trong phát triển web. Chúng mang lại sự linh hoạt, khả năng bảo trì và sự sống động cho stylesheet của bạn. Nhớ rằng, thực hành làm nên完美, vì vậy đừng ngần ngại thử nghiệm các khái niệm này trong dự án của bạn.

Dưới đây là bảng tóm tắt các phương pháp chúng ta đã covered:

Phương Pháp Mô Tả
Khai Báo --variable-name: value;
Sử Dụng property: var(--variable-name);
Phạm Vi Toàn Cục Sử dụng :root pseudo-class
Kế Thừa Biến kế thừa từ phần tử cha
Fallback var(--variable-name, fallback-value)
JavaScript Đặt element.style.setProperty('--var-name', value)
JavaScript Lấy getComputedStyle(element).getPropertyValue('--var-name')

Chúc các bạn may mắn trong việc lập trình, các nhà mã hóa CSS tương lai! Nhớ rằng, mỗi chuyên gia đều từng là người mới bắt đầu. Hãy tiếp tục thực hành, 保持好奇心, và quan trọng nhất, hãy vui vẻ với mã của bạn!

Credits: Image by storyset