CSS :root selector là gì và sử dụng như thế nào ?

Trong lập trình CSS, selector là một phần quan trọng giúp chúng ta xác định và lựa chọn các phần tử để áp dụng các thuộc tính CSS. Trong bài viết này, chúng ta sẽ tìm hiểu về selector mới nhất trong CSS – :root selector. Chúng ta sẽ cùng điểm qua các ưu điểm, nhược điểm của nó, và lời khuyên khi sử dụng.

Lập Trình Viên mời bạn cùng tham khảo chi tiết nội dung bên dưới. Bài viết này nằm trong chuyên đề hướng dẫn CSS từ cơ bản đến nâng cao tại dự án Phát Triển Website.

CSS :root selector là gì ?

Pseudo-class :root trong CSS được sử dụng để chọn phần tử root (gốc) của cấu trúc tài liệu. Tức là, nó sẽ chọn phần tử cha cao nhất trong cây tài liệu hoặc DOM. Trong HTML, phần tử <html> luôn là phần tử gốc.

Mặc dù :root tương đương với html selector vì cả hai đều chọn cùng một phần tử, tuy nhiên, :root selector có độ ưu tiên cao hơn. Điều này có nghĩa là, trong trường hợp có các thuộc tính CSS trùng lặp giữa các selector, :root selector sẽ được ưu tiên áp dụng.

Cú pháp

Cú pháp của :root selector như sau:

:root {
  /* Khai báo thuộc tính CSS */
}

Ví dụ

Hãy xem ví dụ sau đây để hiểu rõ hơn về :root selector:

:root {
  --main-color: red;
}

html {
  --main-color: blue;
}

body {
  background-color: var(--main-color);
  color: white;
}

Ở đoạn mã trên, chúng ta đã khai báo biến –main-color trong :root selector và html selector. Tuy nhiên, giá trị của biến này sẽ là blue vì nó được khai báo sau cùng trong html selector. Kết quả là màu nền của body sẽ là màu xanh da trời.

:root selector là một công cụ hữu ích cho những người lập trình CSS. Nó được sử dụng để áp dụng các thuộc tính CSS cho toàn bộ tài liệu một cách hiệu quả. Điều này giúp chúng ta tiết kiệm thời gian và chỉnh sửa tài liệu một cách dễ dàng.

Được sử dụng để chọn phần tử root của tài liệu hoặc DOM, :root selector có độ ưu tiên cao hơn so với html selector. Tất cả các thuộc tính CSS được khai báo trong :root selector sẽ được ưu tiên áp dụng trong trường hợp có sự trùng lặp giữa các selector.

Hướng dẫn CSS :root selector

Để sử dụng :root selector, chúng ta chỉ cần khai báo thuộc tính CSS mà chúng ta muốn áp dụng cho toàn bộ tài liệu trong :root selector.

Ví dụ

Hãy xem ví dụ sau đây để hiểu cách sử dụng :root selector:

:root {
  --main-bg-color: # f1f1f1;
  --main-text-color: # 333;
}

body {
  background-color: var(--main-bg-color);
  color: var(--main-text-color);
}

Ở ví dụ này, chúng ta đã định nghĩa hai biến –main-bg-color và –main-text-color trong :root selector. Sau đó, chúng ta sử dụng các biến này trong body selector để áp dụng màu nền và màu chữ cho toàn bộ tài liệu.

<!DOCTYPE html> 
<html> 
    <head> 
        <title>:root selector</title> 
        <style>  
            :root { 
                background: lightblue; 
	   color: blue;
	   text-align: center;
		} 
        </style> 
    </head> 
    <body> 
        <h1>Welcome to the Laptrinhvien.org</h1> 
        <h2>This is an example of :root selector</h2> 
    </body> 
</html>  

Ưu và Nhược điểm CSS :root selector

Ưu điểm

  • Độ ưu tiên cao hơn so với html selector trong việc áp dụng các thuộc tính CSS.
  • Giúp tiết kiệm thời gian khi chỉnh sửa và áp dụng các thuộc tính CSS cho toàn bộ tài liệu.

Nhược điểm

  • Thường được sử dụng trong các trường hợp đơn giản, không phù hợp với các dự án lớn và phức tạp.
  • Chỉ có thể áp dụng cho các thuộc tính CSS cơ bản như font-size, color, background-color,…

Lời khuyên CSS :root selector

Khi sử dụng :root selector, chúng ta cần lưu ý các điểm sau đây:

  • Sử dụng :root selector trong các trường hợp đơn giản và không quá phức tạp.
  • Khai báo các biến trong :root selector để áp dụng cho toàn bộ tài liệu.
  • Tránh sử dụng quá nhiều các biến trong :root selector để tránh làm tăng độ phức tạp và giảm hiệu suất của trang web.

1. :root selector có thể được sử dụng để áp dụng các thuộc tính CSS cho toàn bộ tài liệu?

Đúng, :root selector được sử dụng để chọn phần tử root của tài liệu hoặc DOM và áp dụng các thuộc tính CSS cho toàn bộ tài liệu.

2. :root selector có độ ưu tiên cao hơn so với html selector không?

Đúng, :root selector có độ ưu tiên cao hơn so với html selector trong việc áp dụng các thuộc tính CSS.

3. Tại sao nên sử dụng :root selector?

Sử dụng :root selector giúp tiết kiệm thời gian và chỉnh sửa tài liệu một cách dễ dàng.

4. Có những điểm lưu ý nào khi sử dụng :root selector?

Khi sử dụng :root selector, chúng ta cần lưu ý các điểm sau đây: sử dụng trong các trường hợp đơn giản, khai báo các biến trong :root selector để áp dụng cho toàn bộ tài liệu và tránh sử dụng quá nhiều các biến trong :root selector.

5. :root selector chỉ áp dụng được cho các thuộc tính CSS cơ bản như nào?

:root selector chỉ có thể áp dụng cho các thuộc tính CSS cơ bản như font-size, color, background-color,…