Tôi hiện đang làm việc trên một trang đích di động cho một công ty. Đó là một bố trí thực sự cơ bản nhưng bên dưới tiêu đề có một hình ảnh của một sản phẩm mà sẽ luôn luôn là 100% chiều rộng (thiết kế cho thấy nó luôn luôn đi từ cạnh này sang cạnh khác). Tùy thuộc vào chiều rộng của màn hình, chiều cao của hình ảnh rõ ràng sẽ điều chỉnh cho phù hợp. Ban đầu tôi đã làm điều này với một img (với chiều rộng CSS 100%) và nó hoạt động tốt nhưng tôi nhận ra rằng tôi muốn sử dụng các truy vấn phương tiện để phân phát các hình ảnh khác nhau dựa trên các độ phân giải khác nhau. ví dụ: một phiên bản lớn của cùng một hình ảnh. Tôi biết bạn không thể thay đổi img src bằng CSS vì vậy tôi cho rằng tôi nên sử dụng nền CSS cho hình ảnh thay vì thẻ img trong HTML.Hình nền có chiều rộng 100% có chiều cao 'tự động'
Tôi dường như không thể làm việc này đúng cách vì div có hình nền cần cả chiều rộng và chiều cao để hiển thị nền. Tôi rõ ràng có thể sử dụng 'chiều rộng: 100%' nhưng tôi sử dụng cái gì cho chiều cao? Tôi có thể đặt chiều cao cố định ngẫu nhiên như 150px và sau đó tôi có thể thấy 150px trên cùng của hình ảnh nhưng đây không phải là giải pháp vì không có chiều cao cố định. Tôi đã có một vở kịch và thấy rằng một khi có chiều cao (thử nghiệm với 150px) tôi có thể sử dụng 'background-size: 100%' để phù hợp với hình ảnh trong div một cách chính xác. Tôi có thể sử dụng CSS3 gần đây hơn cho dự án này vì nó chỉ nhắm vào thiết bị di động.
Tôi đã thêm một ví dụ thô bên dưới. Xin vui lòng tha thứ cho phong cách nội tuyến nhưng tôi muốn đưa ra một ví dụ cơ bản để thử và làm cho câu hỏi của tôi rõ ràng hơn một chút.
<div id="image-container">
<div id="image" style="background: url(image.jpg) no-repeat; width: 100%; height: 150px; background-size: 100%;"></div>
</div>
Tôi có thể phải cung cấp cho vùng chứa div chiều cao phần trăm dựa trên toàn bộ trang hoặc tôi đang xem điều này hoàn toàn sai?
Ngoài ra, bạn có nghĩ rằng nền CSS là cách tốt nhất để làm điều này không? Có thể có một kỹ thuật phục vụ các thẻ img khác nhau dựa trên chiều rộng thiết bị/màn hình. Ý tưởng chung là mẫu trang đích sẽ được sử dụng nhiều lần với các hình ảnh sản phẩm khác nhau vì vậy tôi cần đảm bảo rằng tôi phát triển theo cách tốt nhất có thể.
Tôi xin lỗi vì điều này hơi dài nhưng tôi quay lại từ dự án này đến dự án tiếp theo nên tôi muốn hoàn thành công việc này. Cảm ơn trước cho thời gian của bạn, nó được nhiều đánh giá cao. Kính trọng
Cảm ơn bạn đã dành thời gian để làm điều này cho tôi, nó được đánh giá cao. Tôi chỉ cho nó một cách nhanh chóng và nó có vẻ là làm việc. –
Câu trả lời cũ này trông hấp dẫn ...nhưng không phải là sự thật rằng trình duyệt di động sẽ vẫn tải xuống (chỉ không hiển thị) hình ảnh ban đầu được đặt trong HTML là src? Nếu vậy, đó là một không khởi động, vì vấn đề là để bảo tồn tài nguyên của thiết bị di động. –
Tôi tin rằng Tim Gallant là đúng về điều này - trong trường hợp này trình duyệt sẽ tải cả hai hình ảnh dưới dạng tài nguyên và sau đó chỉ hiển thị hình ảnh có độ phân giải thấp hơn. Vì vậy, trong khi điều này có vẻ hấp dẫn, trên điện thoại di động nó thực sự chậm hơn so với tải chỉ có một res cao và với hy sinh đó bạn sẽ chỉ nhìn thấy hình ảnh độ phân giải thấp hơn ... tồi tệ nhất của cả hai thế giới. –