Tôi hiện đang làm việc trên trang đích di động cho một công ty. Đó là một bố cục thực sự cơ bản nhưng bên dưới tiêu đề có hình ảnh của một sản phẩm sẽ luôn có chiều rộng 100% (thiết kế cho thấy 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 mà 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 là 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 để cung cấp các hình ảnh khác nhau dựa trên các độ phân giải khác nhau - giả sử nhỏ, vừa và một phiên bản lớn của cùng một hình ảnh, chẳng hạn. Tôi biết bạn không thể thay đổi img src bằng CSS vì vậy tôi nghĩ rằng tôi nên sử dụng nền CSS cho hình ảnh thay vì thẻ img trong HTML.
Tôi dường như không thể làm cho điều này hoạt động bình thường 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 'width: 100%' nhưng tôi sử dụng gì cho chiều cao? Tôi có thể đặt mộ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 đã chơi thử và thấy rằng khi có chiều cao (được thử nghiệm với 150px), tôi có thể sử dụng 'background-size: 100%' để khớp hình ảnh trong div một cách chính xác. Tôi có thể sử dụng CSS3 mới hơn cho dự án này vì nó chỉ nhắm đến thiết bị di động.
Tôi đã thêm một ví dụ sơ bộ bên dưới. Xin thứ lỗi cho các kiểu 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 phần trăm chiều cao div của vùng chứa dựa trên toàn bộ trang hay tôi đang nhìn đ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? Có thể có một kỹ thuật phân phát các thẻ img khác nhau dựa trên thiết bị / chiều rộng 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 mình phát triển mẫu này theo cách tốt nhất có thể.
Tôi xin lỗi vì điều này hơi dài dòng nhưng tôi đang quay lại từ dự án này sang dự án tiếp theo nên tôi muốn hoàn thành việc nhỏ này. Cảm ơn trước cho thời gian của bạn, nó rất được đánh giá cao. Trân trọng