Hi 🤓 Cảm ơn bạn đã ghé thăm blog này, nếu những bài viết trên blog giúp ích cho bạn. Bạn có thể giúp blog hiển thị quảng cáo bằng cách tạm ngừng ad blocker 😫 và để giúp blog duy trì hoạt động nếu bạn muốn.
Cảm ơn bạn!

CSS Variables là gì?

CSS Variables là các giá trị do chúng ta định nghĩa, nó có thể được sử dụng lại ở bất kì đâu nếu chúng ta muốn.

Để làm việc hiệu quả với CSS Variables thì hôm nay mình xin chia sẻ lại một số tip cho các bạn đang tìm hiểu nhé.

Primary variables và Secondary variables

Đầu tiên chúng ta sẽ chia ra 2 loại đó là Primary variablesSecondary variables.

Primary variables

Đây là các biến chúng ta có thể sẽ muốn update lại giá trị cho nó sau này. Ví dụ như khi responsive, khi sử dụng :hover hay :focus.

Ví dụ:

:root {
  --container: 1200px;
	--margin: 15px;
}

Secondary variables

Đây là các biến tính toán sử dụng giá trị các biến khác. Ví dụ mình sử dụng các biến trên vào việc chia các cột flexbox. Bây giờ mình muốn có 3 post trên một row thì mình sẽ làm như sau:

:root {
  --container: 1200px;
	--margin: 15px;

  --s-width-post: calc(1200px / 3 - 2*15);
}

Khi làm việc nhóm, bạn có thể đặt một ký hiệu giúp nhận biết rằng đây là biến không sửa theo cách thủ công, chẳng hạn như --s-width-post (s viết tắt cho secondary) hoặc tùy theo ý của các bạn.

Scope

Thông thường chúng ta hay tạo các biến và thêm chúng vào :root như ví dụ dưới đây:

:root {
 --header-color: blue;
 --footer-color: black;
}

Tất nhiên điều này sẽ giúp cho chúng ta dễ dàng quản lí các biến. Tuy nhiên thì có một vấn đề là tại sao chúng ta lại thêm --header-color vào :root trong khi đó đây là biến mà ta sẽ sử dụng cho header mà không ở bất kì chỗ nào khác ^^.

Có một cách hay hơn là chúng ta nên đặt biến này vào selector chẳng hạn như:

.header {
  --header-color: blue;
}

fallback values

Khi sử dụng fallback values chúng ta có thể set default cho biến. Ví dụ dưới đây mình set default value cho biến --bgred tức là nếu chưa có biến này thì giá trị red sẽ được set.

Removing duplicate code

Mình có một ví dụ như sau:

.btn {
  border: 1px solid black;
}
.btn:hover {
  background: blue;
}
.btn.border-red {
  border-color: red;
}
.btn.border-red:hover {
  background: red;
}

Ở ví dụ trên ta có thể thấy được có một vài chỗ ta sử dụng cùng một giá trị red. Ta có thể fix lại như sau:

.btn {
	border: 1px solid var(--color, black);
}
.btn:hover {
	background: var(--color, black);
}
.btn.border-red {
	--color: red;
}

Capitalization

Các biến này phân biệt chữ hoa với chữ thường.

Ví dụ:

:root {
 --color: blue;
 --COLOR: red;
 // color và COLOR khác nhau
}

Như vậy là mình đã giới thiệu cho các bạn một số cách để chúng ta sử dụng hiệu quả CSS Variables. Chúc các bạn học tập hiệu quả và hẹn các bạn trong các bài viết tiếp theo ^^.

Có thể bạn thích ⚡
homiedev
About Me

Hi, I'm @devnav. Một người thích chia sẻ kiến thức, đặc biệt là về Frontend 🚀. Trang web này được tạo ra nhằm giúp các bạn học Frontend hiệu quả hơn 🎉😄.

Chúc các bạn tìm được kiến thức hữu ích trong blog này 😁😁.