CSS3 hỗ trợ nhận diện color bằng tên màu, mã hexadecimal và mã RGB.
Trong bài này chúng ta sẽ tìm hiểu một số định dạng mã màu thường sử dụng như RGBA colors, HSL colors, HSLA colors, Name colors và đặc biệt hơn là tìm hiểu thuộc tính opacity.
Các thuộc tính và mã màu đều được hỗ trợ ở hầu hết các trình duyệt hiện đại hiện nay.
1. RGBA Colors
RGBA color là một phần mở rộng của RGB color với thành phần bổ sung là chỉ số opacity. Cú pháp của loại màu này là rgba(reg, green, blue, alpha) trong đó alpha có giá trị từ [0-1], giá trị càng gần về 0 thì màu sắc càng mờ và giá trị 1 là màu đậm nhất.
Ví dụ: Màu đỏ có độ alpha tăng dần
Vi dụ: XEM DEMO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # red { background-color : rgba( 255 , 0 , 0 , 1 ); } # green { background-color : rgba( 0 , 255 , 0 , 1 ); } # blue { background-color : rgba( 0 , 0 , 255 , 1 ); } # gray { background-color : rgba( 192 , 192 , 192 , 1 ); } #yellow{ background-color : rgba( 255 , 255 , 0 , 1 ); } |
2. HSL Colors
HSL là chữ viết tắt của Hue, Saturation và Lightness, ký hiệu của nó là hsl(hue, saturation, lightness).
Trong đó:
- Hue có giá trị từ 0 tới 360, giá trị 0 hoặc 360 là màu đỏ
- Saturation có giá trị phần trăm (%) và cao nhất là 100% (full)
- Lightness cũng có giá trị phần trăm, 0% là màu đen và 100% là màu trắng.
Ví dụ: Mã màu đỏ giảm dần,
Ví dụ: XEM DEMO
1 2 3 4 5 6 | # green { background-color :hsl( 120 , 100% , 50% );} #light- green { background-color :hsl( 120 , 100% , 75% );} #dark- green { background-color :hsl( 120 , 100% , 25% );} #pastel- green { background-color :hsl( 120 , 60% , 70% );} #violet { background-color :hsl( 290 , 100% , 50% );} #pastel-violet { background-color :hsl( 290 , 60% , 70% );} |
3. HSLA Colors
HSLA Color là một phần mở rộng của HSL color với thành phần bổ sung là giá trị của alpha (opacity color).
Cú pháp của loại màu này là hsla(hue, saturation, lightness, alpha). Trong đó:
- Hue có giá trị từ 0 tới 360, giá trị 0 hoặc 360 là màu đỏ
- Saturation có giá trị phần trăm (%) và cao nhất là 100% (full)
- Lightness cũng có giá trị phần trăm, 0% là màu đen và 100% là màu trắng.
- Alpha alpha có giá trị từ [0-1], giá trị càng gần về 0 thì màu sắc càng mờ và giá trị 1 là màu đậm nhất.
Ví dụ:
Ví dụ: XEM DEMO
1 2 3 4 5 6 | # green { background-color :hsla( 120 , 100% , 50% , 0.3 );} #light- green { background-color :hsla( 120 , 100% , 75% , 0.3 );} #dark- green { background-color :hsla( 120 , 100% , 25% , 0.3 );} #pastel- green { background-color :hsla( 120 , 60% , 70% , 0.3 );} #violet { background-color :hsla( 290 , 100% , 50% , 0.3 );} #pastel-violet { background-color :hsla( 290 , 60% , 70% , 0.3 );} |
4. Opacity
Một câu hỏi được đặt ra là trường hợp ta sử dụng mã màu dạng HSL thì làm thế nào để bổ sung giá trị của alpha? Câu trả lời là bạn sẽ sử dụng thuộc tính opacity để làm việc này.
Tuy nhiên nó sẽ có nhược điểm là text cũng sẽ bị mờ theo, vì vậy nếu trường hợp background của bạn có trong suốt thì nên dùng mã HSLA.
Ví dụ:
Ví dụ: XEM DEMO
1 2 3 4 5 6 | # green { background-color :hsl( 120 , 100% , 50% ); opacity: 0.3 } #light- green { background-color :hsl( 120 , 100% , 75% ); opacity: 0.3 } #dark- green { background-color :hsl( 120 , 100% , 25% ); opacity: 0.3 } #pastel- green { background-color :hsl( 120 , 60% , 70% ); opacity: 0.3 } #violet { background-color :hsl( 290 , 100% , 50% ); opacity: 0.3 } #pastel-violet { background-color :hsl( 290 , 60% , 70% ); opacity: 0.3 } |
5. HEX Colors
Đây là loại mã màu thông dụng nhất không chỉ ở CSS mà trong các công cụ thiết kế như Photoshop cũng sử dụng.
Cấu trúc của nó như sau: #xxxxxx. Trong đó dấu # là khai báo loại mã màu HEX và xxxxxx là các giá trị có thể chữ cái hoặc chữ số.
Ví dụ điển hình nhất là mã màu trắng là #ffffff và mã màu đen là #000000.
Sau đây là bảng mã màu cho bạn tham khảo:
EEEEEE | DDDDDD | CCCCCC | BBBBBB | AAAAAA | 999999 |
888888 | 777777 | 666666 | 555555 | 444444 | 333333 |
222222 | 111111 | 000000 | FF0000 | EE0000 | DD0000 |
CC0000 | BB0000 | AA0000 | 990000 | 880000 | 770000 |
660000 | 550000 | 440000 | 330000 | 220000 | 110000 |
FFFFFF | FFFFCC | FFFF99 | FFFF66 | FFFF33 | FFFF00 |
CCFFFF | CCFFCC | CCFF99 | CCFF66 | CCFF33 | CCFF00 |
99FFFF | 99FFCC | 99FF99 | 99FF66 | 99FF33 | 99FF00 |
66FFFF | 66FFCC | 66FF99 | 66FF66 | 66FF33 | 66FF00 |
33FFFF | 33FFCC | 33FF99 | 33FF66 | 33FF33 | 33FF00 |
00FFFF | 00FFCC | 00FF99 | 00FF66 | 00FF33 | 00FF00 |
FFCCFF | FFCCCC | FFCC99 | FFCC66 | FFCC33 | FFCC00 |
CCCCFF | CCCCCC | CCCC99 | CCCC66 | CCCC33 | CCCC00 |
99CCFF | 99CCCC | 99CC99 | 99CC66 | 99CC33 | 99CC00 |
66CCFF | 66CCCC | 66CC99 | 66CC66 | 66CC33 | 66CC00 |
33CCFF | 33CCCC | 33CC99 | 33CC66 | 33CC33 | 33CC00 |
00CCFF | 00CCCC | 33CC66 | 33CC33 | 00CC99 | 00CC66 |
00CC33 | 00CC00 | FF99FF | FF99CC | FF9999 | FF9966 |
FF9933 | FF9900 | CC99FF | CC99CC | CC9999 | CC9966 |
CC9933 | CC9900 | 9999FF | 9999CC | 999999 | 999966 |
999933 | 999900 | 6699FF | 6699CC | 669999 | 669966 |
669933 | 669900 | 3399FF | 3399CC | 339999 | 339966 |
339933 | 339900 | 0099FF | 0099CC | 009999 | 009966 |
009933 | 009900 | FF66FF | FF66CC | FF6699 | FF6666 |
FF6633 | FF6600 | CC66FF | CC66CC | CC6699 | CC6666 |
CC6633 | CC6600 | 9966FF | 9966CC | 996699 | 996666 |
996633 | 996600 | 6666FF | 6666CC | 666699 | 666666 |
666633 | 666600 | 3366FF | 3366CC | 336699 | 336666 |
336633 | 336600 | 0066FF | 0066CC | 006699 | 006666 |
006633 | 006600 | FF33FF | FF33CC | FF3399 | FF3366 |
FF3333 | FF3300 | CC33FF | CC33CC | CC3399 | CC3366 |
CC3333 | CC3300 | 9933FF | 9933CC | 993399 | 993366 |
993333 | 993300 | 6633FF | 6633CC | 663399 | 663366 |
663333 | 663300 | 3333FF | 3333CC | 333399 | 333366 |
333333 | 333300 | 0033FF | FF3333 | 0033CC | 003399 |
003366 | 003333 | 003300 | FF00FF | FF00CC | FF0099 |
FF0066 | FF0033 | FF0000 | CC00FF | CC00CC | CC0099 |
CC0066 | CC0033 | CC0000 | 9900FF | 9900CC | 990099 |
990066 | 990033 | 990000 | 6600FF | 6600CC | 660099 |
660066 | 660033 | 660000 | 3300FF | 3300CC | 330099 |
330066 | 330033 | 330000 | 0000FF | 0000CC | 000099 |
000066 | 000033 | 00FF00 | 00EE00 | 00DD00 | 00CC00 |
00BB00 | 00AA00 | 009900 | 008800 | 007700 | 006600 |
005500 | 004400 | 003300 | 002200 | 001100 | 0000FF |
0000EE | 0000DD | 0000CC | 0000BB | 0000AA | 000099 |
000088 | 000077 | 000055 | 000044 | 000022 | 000011 |
6. Color Name
Đây là cú pháp đơn giản nhất để xác định màu trong CSS. Tuy nhiên không khuyến khích bạn sử dụng bởi vì nó không phải là một dạng chuẩn của color và nó cũng không chứa đầy đủ màu.
Ví dụ:
- black : màu đen
- red : màu đỏ
- pink : màu hồng
- white : màu trắng
- yellow : màu vàng
7. Lời kết
Qua bài này mình đã giới thiệu đầy đủ các định dạng màu sắc có thể sử dụng trong CSS nói chung và trong CSS3 nói riêng.
Qua bài này ta cũng rút được kinh nghiệm là nếu sử dụng màu background có trong suốt thì nên sử dụng định dạng màu RGBA hoặc HSLA. Thứ hai nữa là không nên sử dụng màu theo tên tiếng anh bởi vì nó khó quản lý và ko đúng chuẩn.