Tôi đang trong quá trình cố gắng quấn quanh đầu bằng cách sử dụng srcset
và sizes
trên img
thẻ.Sử dụng các kích thước thuộc tính cho hình ảnh reponsive
Mặc dù tôi nghĩ rằng mình đã nắm được các khái niệm cơ bản - chủ yếu nhờ vào bài viết this - Tôi đang gặp khó khăn trong việc áp dụng thực tế thuộc tính sizes
.
Trong tất cả các ví dụ tôi có thể tìm thấy, mọi thứ được đơn giản ồ ạt và thuộc tính kích thước được khai báo như ở mỗi điểm ngắt, chiều rộng hình ảnh sẽ là tỷ lệ chính xác của chiều rộng khung nhìn, cho phép sử dụng đơn vị vm
. Ví dụ:
sizes="(min-width: 36rem) 33.3vw,
100vw"
Tất nhiên trong cuộc sống thực, hình ảnh thường trong container khác mà bản thân có thể là trong container khác và như vậy, mỗi lề riêng, đệm hoặc vị trí của họ. Có công bằng khi nói rằng trong tất cả trừ trường hợp đơn giản nhất (khi hình ảnh có chiều rộng chất lỏng và không đơn giản là tỷ lệ phần trăm chính xác của chế độ xem), phải sử dụng calc
, có khả năng thêm các tính toán phức tạp vào đánh dấu html một kích thước hình ảnh cần phải được tính toán làm việc từ chiều rộng khung nhìn, xuống qua bất kỳ vùng chứa nào cho hình ảnh? Ví dụ: bạn sẽ tính toán kích thước chính xác cho một hình ảnh nằm trong vùng chứa với đệm 7px bên trong vùng chứa là 45% vùng chứa với lề 15px bên trong thanh bên là 25% của trang chứa chính 15px đệm và có chiều rộng tối thiểu là 1220px?
sizes="(min-width: 36rem) calc(((((1220px - (2 * 15px) * 25%) * 45%) - (2 * 15px) - (2 * 7px)),
100vw"
Cố gắng tính toán điều này trong thuộc tính kích thước có vẻ lố bịch, nhất là khi tất cả điều này có thể thay đổi tại mỗi điểm ngắt. phải giữ cho tính toán ồ ạt phức tạp này đồng bộ với những thay đổi đối với CSS có vẻ như điên rồ. Và sau đó bạn có hỗ trợ trình duyệt bị vá cho calc
.
Tôi cảm thấy mình thiếu một điều gì đó hiển nhiên, nhưng nó là gì?
Lưu ý: Tôi biết về sự xuất sắc của Alexander Farkas Lazy Sizes tính toán kích thước cho bạn thông qua việc sử dụng thuộc tính data
nhưng tôi quan tâm đến việc sử dụng tiêu chuẩn.
Cảm ơn rất nhiều vì câu trả lời của bạn. Khi bạn nói 'kích thước không phù hợp với kích thước hình ảnh thực của bạn 100% chính xác' bạn có nghĩa là 'kích thước không cần phải phù hợp với kích thước hình ảnh thực của bạn 100% chính xác'. Nếu vậy, điều này có ý nghĩa rất nhiều - theo cách đó, độ phức tạp của một vài bộ lề/đệm có thể bị bỏ qua để có một cách tiếp cận tổng quát hơn đối với kích thước hình ảnh - biết rằng một hình ảnh khoảng 25% của khung nhìn là đủ . Theo như dựa vào một CMS và sử dụng một bộ hình ảnh được xác định trước, tôi chắc chắn thấy lợi thế của điều này. Chướng ngại vật của tôi là tính toán kích thước hình ảnh chính xác ngay từ đầu. – Undistraction
Có, kích thước không cần phải khớp với kích thước thật của bạn 100% chính xác. Trình duyệt tính toán giá trị px từ danh sách kích thước nguồn của bạn. Và kết hợp điều này với devicePixelRatio và sau đó chọn một ứng cử viên hình ảnh tốt. Vì vậy, bạn làm điều này để có được một ứng cử viên hình ảnh cụ thể được chọn. Rõ ràng, số lượng ứng cử viên hình ảnh bị hạn chế (thường là từ 2-10 ứng viên tùy thuộc vào tình huống). Vì vậy, nếu bạn cung cấp cho các ứng cử viên trình duyệt trong 200 bước pixel, trình duyệt đã bị giới hạn và cần phải hoạt động gần đúng. –