2012-04-16 22 views
5

Ý tưởng của tôi, giả sử bạn bắt đầu với một sprite 200x200 (có nghĩa là hình ảnh có độ phân giải gấp đôi là 400x400) được điều này:Bất kỳ hạn chế nào đối với giải pháp CSS sprite này cho màn hình 'võng mạc'?

.sprite { 
    background-image:url('1x.png'); 
    background-repeat: no-repeat; 
    background-size: 200px 200px; 
} 

@media only screen and (-webkit-min-device-pixel-ratio: 2) { 
    .sprite { 
     background-image:url('2x.png'); 
    } 
} 

Sống dụ: http://ov3rkill.com/temp/a5dii52/

Tôi đã vật lộn một thời gian cố gắng để xác định cách tốt nhất để cung cấp hình ảnh độ phân giải cao hơn (trước đây tôi giữ tất cả hình ảnh riêng biệt và có kích thước riêng lẻ) và điều này thật thẳng thắn dường như quá đơn giản.

Có ai có thể thấy bất kỳ hạn chế tiềm năng nào không? Tôi đang chơi đùa với điều này để sử dụng sản xuất và cho đến nay nó xuất hiện để làm việc.

+0

Một nhược điểm mà tôi thấy là điện thoại sẽ tải xuống cả hai hình ảnh. Điều gì về việc sử dụng hai bảng định kiểu khác nhau chỉ được áp dụng sau khi xử lý truy vấn phương tiện? –

Trả lời

4

Vì truy vấn phương tiện truyền thông cho võng mạc đang được gọi khi tải nên ghi đè cuộc gọi ban đầu để tải hình ảnh nhỏ. Tôi chưa bao giờ chứng kiến ​​hình ảnh có độ phân giải thấp nhấp nháy khi sử dụng phương pháp này trên màn hình võng mạc.

Có ai đã sử dụng JS để xác nhận rằng hình ảnh nhỏ hơn tải trên màn hình võng mạc không? Tôi tò mò muốn biết.

+0

Có khả năng có thể sử dụng @media không phải màn hình và (-webkit-min-device-pixel-ratio: 2) để tải hình ảnh ban đầu, nhưng điều đó sẽ đưa ra một vài tác nhân người dùng không hỗ trợ từ khóa 'không' để lại không hỗ trợ cho những người dùng đó. – 4lun

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