Tôi có một vài hình ảnh trên trang của mình. Tôi thấy rằng trang bắt đầu hiển thị trước khi các hình ảnh đã được tải (tốt), nhưng hiệu ứng hình ảnh không phải là tuyệt vời. Ban đầu người dùng thấy này:Nền giữ chỗ/hình ảnh trong khi chờ tải hình ảnh đầy đủ?
--------hr--------
text
Sau đó, một vài mili giây sau trang nhảy để hiển thị này:
--------hr--------
[ ]
[ image ]
[ ]
text
Có một cách đơn giản mà tôi có thể hiển thị một hình nền màu xám của chính xác độ rộng và chiều cao rằng hình ảnh sẽ chiếm, cho đến khi bản thân hình ảnh tải?
Yếu tố phức tạp là tôi không biết chiều cao và chiều rộng của hình ảnh trước: chúng phản hồi và chỉ được đặt thành width: 100%
của div chứa. Đây là HTML/CSS:
<div class="thumbnail">
<img src="myimage.jpeg" />
<div class="caption">caption</div>
</div>
img { width: 100% }
Dưới đây là một JSFiddle để minh họa cho vấn đề cơ bản: http://jsfiddle.net/X8rTB/3/
Tôi đã nhìn vào những thứ như LazyLoad, nhưng tôi không thể không cảm thấy phải có một đơn giản hơn, câu trả lời không JS. Hoặc là một thực tế là tôi không biết chiều cao của hình ảnh trước một vấn đề không thể vượt qua? Tôi biết tỷ lệ khung hình của hình ảnh.
Đặt div trống với nền màu xám và đặt thứ nguyên, sau đó thêm hình ảnh làm 'nền-hình ảnh'? – Andy
Đã thử rằng như sau, nhưng nó không thực sự dường như làm bất cứ điều gì: 'ul.options li {nền: url (/ media/img/cont/filler.png); background-size: 100% 100%; } ' – Richard
Richard, không sử dụng một mục danh sách, sử dụng một div ở vị trí của '', và sau đó cung cấp cho nó thiết lập kích thước ('height: 200px; width: 300px;') và nó cũng làm việc – Andy