Mô-đun màu CSS cấp 4 có thể sẽ hỗ trợ ký hiệu RGBA thập lục phân 4 và 8 chữ số!
Ba tuần trước (ngày 18 tháng 12 năm 2014) bản nháp của trình soạn thảo CSS Mô-đun cấp 4 đã được gửi cho Nhóm làm việc CSS W3C. Mặc dù trong tình trạng đó là rất nhiều nhạy cảm với sự thay đổi, phiên bản hiện tại của tài liệu ngụ ý rằng trong phần nào tương lai CSS gần sẽ hỗ trợ cả 4 và 8 chữ số ký hiệu thập lục phân RGBA.
Lưu ý: trích dẫn sau đây có các đoạn không liên quan bị cắt bỏ và nguồn có thể đã bị sửa đổi nhiều vào thời điểm bạn đọc bài này (như đã đề cập ở trên, đó là bản nháp của biên tập viên chứ không phải tài liệu hoàn chỉnh).
Nếu mọi thứ đã thay đổi nhiều, xin vui lòng để lại một bình luận cho tôi biết để tôi có thể cập nhật câu trả lời này!
§ 4.2. Các ký hiệu thập lục phân RGB: #RRGGBB
Cú pháp của a <hex-color>
là <hash-token>
mã thông báo có giá trị bao gồm 3, 4, 6 hoặc 8 chữ số thập lục phân . Nói cách khác, màu hex được viết dưới dạng ký tự băm, "#", theo sau là một số chữ số 0-9
hoặc chữ cái a-f
(trường hợp các chữ cái không quan trọng - #00ff00
giống hệt #00FF00
).
8 chữ số
6 chữ số đầu tiên được hiểu theo ký hiệu 6 ký tự. Cặp chữ số cuối cùng, được hiểu là số thập lục phân, chỉ định kênh alpha của màu, trong đó 00
đại diện cho một màu hoàn toàn trong suốt và ff
đại diện cho một màu hoàn toàn mờ đục.
Ví dụ 3
Nói cách khác, #0000ffcc
biểu thị cùng màu với rgba(0, 0, 100%, 80%)
(một màu xanh hơi trong suốt).
4 chữ số
Đây là một biến thể ngắn hơn của ký hiệu 8 chữ số, "mở rộng" theo cách tương tự như ký hiệu 3 chữ số. Chữ số đầu tiên, được hiểu là số thập lục phân, chỉ định kênh màu đỏ của màu, trong đó 0
biểu thị giá trị tối thiểu và f
đại diện cho mức tối đa. Ba chữ số tiếp theo tương ứng là các kênh màu lục, lam và alpha.
Điều này có ý nghĩa gì đối với tương lai của màu CSS?
Điều này có nghĩa là giả sử điều này không bị xóa hoàn toàn khỏi tài liệu cấp 4, chúng tôi sẽ sớm có thể xác định màu RGBA (hoặc màu HSLA, nếu bạn là một trong số những người đó ) ở định dạng thập lục phân trong các trình duyệt hỗ trợ Màu Cú pháp cấp 4 của mô-đun.
Thí dụ
elem {
background: rgb(0, 0, 0); /* RGB notation (no alpha). */
background: #000; /* 3-digit hexadecimal notation (no alpha). */
background: #000000; /* 6-digit hexadecimal notation (no alpha). */
background: rgba(0, 0, 0, 1.0); /* RGBA notation. */
/* The new 4 and 8-digit hexadecimal notation. */
background: #0000; /* 4-digit hexadecimal notation. */
background: #00000000; /* 8-digit hexadecimal notation. */
}
Khi nào tôi có thể sử dụng điều này trong các sản phẩm của khách hàng?
Bỏ qua tất cả những trò đùa: hiện tại chỉ mới bắt đầu năm 2015, vì vậy những thứ này sẽ không được hỗ trợ trong bất kỳ trình duyệt nào trong một thời gian dài - ngay cả khi sản phẩm của bạn chỉ được thiết kế để hoạt động trên các trình duyệt cập nhật nhất mà bạn có thể không được nhìn thấy điều này trong hành động sản xuất bất cứ lúc nào sớm.
Xem hỗ trợ trình duyệt hiện tại cho ký hiệu màu #RRGGBBAA
Tuy nhiên, điều đó nói rằng, cách CSS hoạt động có nghĩa là chúng ta thực sự có thể bắt đầu sử dụng những thứ này ngay hôm nay! Nếu bạn thực sự muốn bắt đầu sử dụng chúng ngay bây giờ, miễn là bạn thêm lại bất kỳ trình duyệt không hỗ trợ nào sẽ chỉ cần bỏ qua các thuộc tính mới cho đến khi chúng được coi là hợp lệ:
figure {
margin: 0;
padding: 4px;
/* Fall back (...to browsers which don't support alpha transparency). */
background: #FEFE7F;
color: #3F3FFE;
/* Current 'modern' browser support. */
background: rgba(255, 255, 0, 0.5);
color: rgba(0, 0, 255, 0.75);
/* Fall... foward? */
background: #ffff007F; /* Or, less accurately, #ff08 */
color: #0000ffbe; /* Or #00fc */
}
<figure>Hello, world!</figure>
Miễn là bạn đang xem câu trả lời này trên trình duyệt hỗ trợ các thuộc tính background
và color
CSS, <figure>
phần tử trong đoạn trích trên sẽ trông rất giống với điều này:
Sử dụng phiên bản Chrome mới nhất trên Windows (v39.0.2171) để kiểm tra <figure>
yếu tố của chúng tôi , chúng tôi sẽ thấy như sau:
Các rgba()
giá trị thập lục phân 6 chữ số được ghi đè bởi các giá trị và các giá trị thập lục phân 8 chữ số của chúng tôi bị bỏ qua vì chúng hiện được coi là không hợp lệ bởi trình phân tích cú pháp CSS của Chrome. Ngay khi trình duyệt của chúng tôi hỗ trợ các giá trị 8 chữ số này, các giá trị này sẽ ghi đè lên các giá trị này rgba()
.
CẬP NHẬT 2018-07-04: Firefox, Chrome và Safari hiện đang hỗ trợ ký hiệu này, Edge vẫn còn thiếu nhưng có thể sẽ đi theo ( https://caniuse.com/#feat=css-rrggbbaa ).
rgb(0xff,\x80,#44)
đáng ngạc nhiên đại diện Octal dường như hơi york một chútrgb(0100, 0200,0300)
là#4080C0