2011-01-19 30 views
13

Vì vậy, tôi đang cố gắng để đặt một nền gradient trên một bảng, qua một lớp:Tại sao độ dốc CSS này lại hiển thị sai màu trong IE 7?

.prov-results-bkgrd { 
    background: #fff url(/_images/prov-results-table-bg.jpg) left bottom repeat-x; 

    background: -webkit-gradient(
     linear, 
     left top, 
     left bottom, 
     from(#fff), 
     to(#dedbd5) 
    ); 

    background: -moz-linear-gradient(top, #fff, #dedbd5); 

    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff', endColorstr='#dedbd5'); 
} 

IE8 và FireFox trông OK. Họ áp dụng các gradient như tôi nghĩ: từ màu trắng, màu be nhạt.

Tuy nhiên, IE7 áp dụng độ dốc từ màu đen thành màu xanh đậm ??? WTF là với điều đó ...?

Địa điểm đó đến từ đâu? IE7 không nhận ra màu hex?

Và nếu không, nó sẽ không áp dụng nền mặc định, tức là #fff và tệp hình ảnh?

Trả lời

10

IE không nhận ra màu hex, nhưng không phải là loại mà bạn đang sử dụng. Chỉ những người có 6 hệ thập lục phân (#RRGGBB) hoặc 8 hệ thập lục phân (#AARRGGBB; chỉ hoạt động trong bộ lọc gradient!) Sẽ hoạt động. Nó cũng sẽ chấp nhận màu sắc được đặt tên.

Vì vậy, nó sẽ hoạt động nếu bạn thay thế #fff bằng white hoặc #ffffff (hoặc #ffffffff, nhưng dài hơn mức cần thiết trong trường hợp này).

Các trang MSDN cho startColorStrendColorStr cũng lưu ý rằng màu sắc bắt đầu mặc định là màu xanh, và màu kết thúc mặc định là màu đen, và:

Chuỗi đầu vào nằm ngoài phạm vi hexidecimal sẽ trở lại mặc định giá trị.

+0

Màu bắt đầu và màu kết thúc mặc định là màu xanh dương và đen ???? Tại sao trên trái đất đó sẽ bao giờ là một ý tưởng tốt? – guiniveretoo

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