2015-02-03 20 views
5

Có lợi thế lớn để sử dụng:màu Transparent vs rgba (0,0,0,0)

background-color: rgba(0,0,0,0); 

thay vì:

background-color: transparent; 

?

+0

liên quan: [CSS background: none vs background: transparent] (http://stackoverflow.com/questions/20784292/css-backgroundnone-vs-backgroundtransparent) –

Trả lời

5

Hành vi hoàn toàn giống nhau, nhưng transparentis compatible also with IE8. RGBA là nâng cao hơn (nhưng lacks IE8 support) và cho phép bạn sửa đổi nhanh chóng, trong trường hợp bạn muốn một màu "gần như trong suốt", mà không cần thay đổi hoàn toàn thuộc tính.

Ví dụ, nó có thể rất nhanh chóng để thiết lập

background-color: rgba(0,0,0,0.1); 
+0

Tôi thực sự không biết điều này: nghi ngờ của tôi (nhưng đó là chỉ là một nghi ngờ) là một trình duyệt không tương thích với rgba coud chỉ đơn giản là bỏ qua khai báo này và không đặt 'none' làm giá trị.Trong trường hợp khai báo này là duy nhất, hành vi sẽ là những gì bạn mô tả, nhưng trong trường hợp khai báo sẽ ghi đè lên một số khác .... nếu trình duyệt bỏ qua quy tắc này .... bạn không có được 'nền: không 'tương đương. –

+0

Các hành vi bình thường đối với các trình duyệt khi họ gặp phải một decalration mà họ không hiểu/hỗ trợ là không làm bất cứ điều gì vì họ không biết phải làm gì. Vì vậy, thuộc tính 'background-color' sẽ không thay đổi và mặc định là witch trong thực tế là' transparent' và không 'none' ([MDN reference] (https://developer.mozilla.org/en-US/docs/Web/ CSS/background)) –

+0

Trong trường hợp decalration là nghĩa vụ phải ghi đè lên một khác thì nó sẽ không làm việc mặc dù, bạn là đúng. –

0

Để Lưu ý: background_color: rgba(0,0,0,0.0); sẽ chính xác hơn nhưng giống nhau. Như đã nêu background_color: transparent; sẽ được hỗ trợ trong các trình duyệt cũ hơn.

Sử dụng background_color không phải là vấn đề vì nó được sử dụng phổ biến trong cả hai chỉ số. Vấn đề đặt câu hỏi là trong việc gán trong suốt -vs- rgba.

trong suốt - rõ ràng đặt nền thành nền trong suốt không có tùy chọn màu; các lựa chọn khác là một assingment màu hex quy định tại hoặc giá trị màu được chấp nhận khác như blue rgb(x,x,x) rgba(x,x,x,x) #xxxxxx hsl(x,x,x) hsla(x,x,x,x), vv

rgba(x,x,x,x) tuy nhiên là và không phải là con ngựa của một màu sắc khác nhau vì nó là rộng hơn và cần phải được chia nhỏ để giải thích. Thứ nhất là sự khác biệt mà bạn đang gán một màu sắc và thiết lập tính minh bạch,

Các "rgb" phần của các thiết lập là viết tắt của đỏ xanh xanh đại diện cho 3 không cài đặt đầu tiên (0,0,255,X) và mỗi chữ số 0 chấp nhận các giá trị từ 0 đến 255 Chơi với ba giá trị này kết hợp trộn các thiết lập màu để tạo ra một màu duy nhất.

Các "một" trong (rgb một) và thiết lập zero của nó (x, x, x,) là kênh ALPHA mà đặt opacity/minh bạch của ba màu kết hợp đầu tiên (x, x, x,?). Đặc biệt lưu ý giá trị bằng không cuối cùng này (x, x, x,) chấp nhận phạm vi giá trị từ 0.0 đến 1.0. Cài đặt 0.0 hoàn toàn minh bạch trong khi 1.0 rất chắc chắn. Vì vậy, việc sử dụng thiết lập rgba(x,x,x,0.5) sẽ tạo ra một màu nhất định ở độ trong suốt một nửa.

Các vấn đề liên quan