CodeGym /Các khóa học /Frontend SELF VI /Sử dụng biến CSS

Sử dụng biến CSS

Frontend SELF VI
Mức độ , Bài học
Có sẵn

2.1 Khai báo biến CSS

Biến CSS, còn được gọi là Custom Properties, cho phép bạn định nghĩa các giá trị có thể tái sử dụng ở nhiều phần khác nhau của mã CSS. Chúng giúp quản lý style đơn giản hơn và tăng tính linh hoạt.

Biến CSS được khai báo với hai dấu gạch ngang (--) và có thể được đặt trong bất kỳ selector nào. Tuy nhiên, để đảm bảo các biến có thể truy cập trong toàn bộ tài liệu, chúng thường được xác định trong selector gốc :root.

Cú pháp:

    
      selector {
        --tên-biến: giá trị;
      }
    
  

Ví dụ:

Trong ví dụ này, bốn biến được khai báo: --main-bg-color, --main-text-color, --primary-color, và --font-size.

CSS
    
      :root {
        --main-bg-color: #f0f0f0;
        --main-text-color: #333;
        --primary-color: #3498db;
        --font-size: 16px;
      }
    
  

Sử dụng biến CSS

Để sử dụng giá trị của biến, bạn dùng hàm var(), hàm này nhận tên biến làm tham số.

Cú pháp:

    
      selector {
        thuộc tính: var(--tên-biến);
      }
    
  

Ví dụ:

Trong ví dụ này, các giá trị biến được sử dụng để đặt màu nền, màu văn bản, kích thước font và màu của liên kết.

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

      a {
        color: var(--primary-color);
      }
    
  

2.2 Ví dụ sử dụng biến CSS

Ví dụ 1: Sử dụng biến cơ bản

CSS
    
      :root {
        --main-bg-color: #f0f0f0;
        --main-text-color: #333;
        --primary-color: #3498db;
        --font-size: 16px;
      }

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

      a {
        color: var(--primary-color);
      }
    
  
HTML
    
      <body>
        <p>This is a paragraph with a link to <a href="#">Example.com</a>.</p>
      </body>
    
  

Kết quả:

  • Phông nền trang sẽ có màu xám nhạt
  • Văn bản sẽ có màu xám đậm
  • Kích thước font sẽ là 16 pixel
  • Các liên kết sẽ có màu xanh dương

Ví dụ 2: Ghi đè biến trong các thành phần riêng lẻ

Biến CSS có thể được ghi đè cho các phần tử hoặc thành phần riêng lẻ, cung cấp độ linh hoạt trong việc style:

CSS
    
      :root {
        --main-bg-color: #f0f0f0;
        --main-text-color: #333;
        --primary-color: #3498db;
      }

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

      .footer {
        --primary-color: #e74c3c; /* Ghi đè biến */
        background-color: var(--primary-color);
        color: var(--main-bg-color);
      }
    
  
HTML
    
      <div class="header">
        <p>This is the header.</p>
      </div>

      <div class="footer">
        <p>This is the footer.</p>
      </div>
    
  

Kết quả:

  • Phông nền của tiêu đề sẽ có màu xanh dương, văn bản sẽ có màu xám nhạt
  • Phông nền của chân trang sẽ có màu đỏ (biến đã được ghi đè), văn bản sẽ có màu xám nhạt

Ví dụ 3: Sử dụng biến kết hợp với các giá trị khác

Biến CSS có thể được kết hợp với các giá trị và hàm CSS khác:

CSS
    
      :root {
        --padding: 10px;
        --margin: 20px;
      }

      .container {
        padding: var(--padding);
        margin: var(--margin) auto;
        border: 1px solid black;
      }
    
  
HTML
    
      <div class="container">
        <p>This is a container with padding and margin.</p>
      </div>
    
  

Kết quả:

  • Container sẽ có các khoảng đệm và khoảng cách ngoài được xác định bởi các biến

2.3 Sử dụng biến CSS trong JavaScript

Ví dụ sử dụng biến CSS trong JavaScript

Biến CSS có thể được thay đổi động bằng JavaScript, điều này cho phép điều chỉnh style theo thời gian thực:

CSS
    
      :root {
        --bg-color: #ffffff;
        --text-color: #000000;
      }

      body {
        background-color: var(--bg-color);
        color: var(--text-color);
      }
    
  
HTML
    
      <button id="toggle-theme">Toggle Theme</button>
      <p>This is a paragraph.</p>
    
  
JavaScript
    
      document.getElementById('toggle-theme').addEventListener('click', () => {

        const root = document.documentElement;

        if (root.style.getPropertyValue('--bg-color') === '#ffffff') {
          root.style.setProperty('--bg-color', '#333333');
          root.style.setProperty('--text-color', '#ffffff');
        } else {
          root.style.setProperty('--bg-color', '#ffffff');
          root.style.setProperty('--text-color', '#000000');
        }
      });
    
  

Giải thích:

Khi bấm nút, các giá trị của biến --bg-color--text-color sẽ thay đổi, dẫn đến việc thay đổi màu nền và màu văn bản của trang.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION