Hình ảnh không hiển thị trong html trình duyệt di động

Có một số lý do có thể khiến hình ảnh của bạn không hiển thị trên các trang của bạn như mong đợi

  1. Tệp hình ảnh không nằm ở cùng vị trí được chỉ định trong thẻ IMG của bạn
  2. Hình ảnh không có cùng tên tệp như được chỉ định trong thẻ IMG của bạn
  3. Tệp hình ảnh bị hỏng hoặc bị hỏng
  4. Tệp hình ảnh thực sự chưa bao giờ được tải lên

Các liên kết hoặc hình ảnh bị hỏng không thể do sự cố ở phía máy chủ. Chúng chỉ có thể do mã HTML không chính xác hoặc lỗi khi tải tệp hình ảnh lên máy chủ của chúng tôi

Xử lý sự cố

Khắc phục sự cố hình ảnh bị hỏng nên bắt đầu bằng các bước sau

  • Định vị con trỏ của bạn trên hình ảnh bị hỏng và nhấp chuột phải. Một menu bật lên sẽ xuất hiện với một số tùy chọn
  • Nhấp chuột trái vào tùy chọn để xem Thuộc tính. Hộp thoại Thuộc tính sẽ hiển thị Địa chỉ/URL của hình ảnh như được xác định trong trang HTML của bạn. Nó sẽ trông giống như thế này

    https. //www. thí dụ. com/my-image-dir/myimage. png

Rõ ràng là bạn muốn thay thế tên miền, thư mục con và tên tệp hình ảnh của mình khi thích hợp. Hai định dạng hình ảnh phổ biến nhất được sử dụng trên web hiện nay là PNG và JPEG, nhưng cũng có thể là GIF hoặc WEBP mới hơn, do đó, nhiều khả năng hình ảnh của bạn sẽ kết thúc bằng một trong hai định dạng này. PNG hoặc. phần mở rộng JPEG

URL được hiển thị trong hộp thoại thuộc tính hiển thị vị trí mà trang web của bạn đang yêu cầu trình duyệt tìm kiếm hình ảnh. Viết ra đường dẫn hoặc sao chép và dán nó vào trình soạn thảo văn bản yêu thích của bạn để bạn có thể tham khảo sau này

Bây giờ bạn đã biết hình ảnh được cho là ở đâu và hình ảnh được đặt tên là gì, hãy xác minh rằng hình ảnh đó ở đó. Chuyển đến Bảng điều khiển của bạn và nhấp vào 'Trình quản lý tệp'. Bạn sẽ cần nhấp vào thư mục public_html . Đường dẫn được đại diện bởi "www. thí dụ. com" là thư mục "public_html" của bạn, vì vậy, nơi đầu tiên cần truy cập là thư mục đó. Kiểm tra xem hình ảnh của bạn có nằm trong đúng thư mục trong đường dẫn bạn có ở trên không và tên tệp có đúng không

Bạn cũng có thể sử dụng FTP hoặc SSH, đăng nhập vào tài khoản của mình và điều hướng đến thư mục có tên trong đường dẫn bạn đã xác định ở trên. Khi bạn đăng nhập lần đầu vào tài khoản của mình, bạn sẽ ở trong thư mục "gốc" hoặc "hệ thống" (trừ khi bạn đã định cấu hình ứng dụng của mình để tự động mở trong thư mục cấp dưới. ) Sử dụng lệnh "cd" để thay đổi thư mục trong SSH

Tiếp tục điều hướng cho đến khi bạn tới thư mục con (my-image-dir trong ví dụ trên) chứa hình ảnh của bạn (myimage. png trong ví dụ trên) được cho là được tìm thấy. Khi bạn ở đó, hãy thử tìm tệp hình ảnh của bạn (myimage. png trong ví dụ trên). Ứng dụng khách FTP sẽ tự động hiển thị tất cả các tệp nằm trong thư mục hiện tại. Trong SSH, để có danh sách thư mục, hãy nhập "ls -a" (không có dấu ngoặc kép) và nhấn enter

Rất có thể bây giờ bạn đã phát hiện ra vấn đề. Nếu tệp hình ảnh không có ở đó, hãy đặt nó ở đó bằng cách nhấp vào 'tải lên' trong Trình quản lý tệp hoặc điều chỉnh thẻ hình ảnh của bạn để thẻ phản ánh đúng vị trí

Dưới đây là một số điều quan trọng cần nhớ

  1. UNIX là CaSeNsItIvE. Về máy chủ của chúng tôi, myimage. png, hình ảnh của tôi. PNG và hình ảnh của tôi. GIF là ba tệp hoàn toàn khác nhau. Kiểm tra tên tệp của bạn -- tên tệp trong thư mục của bạn và tên tệp trong đường dẫn có trong trang web của bạn phải khớp CHÍNH XÁC. Nếu không, hãy thay đổi cái này hay cái khác để họ làm
  2. Vấn đề phân biệt chữ hoa chữ thường cũng đúng với tên thư mục. MyImageDir và myimagedir được coi là hai tên thư mục riêng biệt. Đảm bảo tên thư mục cũng khớp

Và sau tất cả những điều đó nếu nó vẫn không hoạt động -

Nếu đường dẫn hệ thống của tệp hình ảnh khớp với URL của đường dẫn của trình duyệt *chính xác* mà hình ảnh vẫn không hiển thị thì tệp hình ảnh đó có thể bị hỏng hoặc hỏng. Đảm bảo hình ảnh tải trên máy tính cục bộ của bạn (dùng thử trong trình duyệt của bạn) rồi tải lên lại (ở chế độ BINARY, nếu sử dụng FTP)

Nếu nó vẫn không hoạt động và bạn là khách hàng hiện tại, vui lòng yêu cầu hỗ trợ bằng cách gửi phiếu hỗ trợ lưu trữ web. Hoặc nếu không phải là khách hàng hiện tại, hãy đăng ký dịch vụ lưu trữ cPanel hạng thương gia ngay hôm nay để nhận được sự hỗ trợ mà bạn xứng đáng

Trong bài viết này, chúng ta sẽ tìm hiểu về khái niệm hình ảnh phản hồi — hình ảnh hoạt động tốt trên các thiết bị có kích thước màn hình, độ phân giải và các tính năng khác nhau rất khác nhau — và xem những công cụ mà HTML cung cấp để giúp triển khai chúng. Điều này giúp cải thiện hiệu suất trên các thiết bị khác nhau. Hình ảnh đáp ứng chỉ là một phần của thiết kế đáp ứng, một chủ đề CSS trong tương lai để bạn tìm hiểu

Prerequisites:You should already know the basics of HTML and how to add static images to a web page.Objective:Learn how to use features like and the element to implement responsive image solutions on websites.

Hãy xem xét một tình huống điển hình. Một trang web điển hình có thể chứa hình ảnh tiêu đề và một số hình ảnh nội dung bên dưới tiêu đề. Hình ảnh tiêu đề có thể sẽ trải dài trên toàn bộ chiều rộng của tiêu đề và hình ảnh nội dung sẽ vừa với một nơi nào đó bên trong cột nội dung. Đây là một ví dụ đơn giản

Hình ảnh không hiển thị trong html trình duyệt di động

Điều này hoạt động tốt trên thiết bị màn hình rộng, chẳng hạn như máy tính xách tay hoặc máy tính để bàn (bạn có thể xem ví dụ trực tiếp và tìm mã nguồn trên GitHub. ) Chúng ta sẽ không thảo luận nhiều về CSS trong bài học này, ngoại trừ việc nói rằng

  • Nội dung nội dung đã được đặt thành chiều rộng tối đa là 1200 pixel — trong các cổng xem trên chiều rộng đó, nội dung vẫn ở mức 1200px và chính giữa trong không gian có sẵn. Trong các khung nhìn bên dưới chiều rộng đó, phần thân sẽ ở 100% chiều rộng của khung nhìn
  • Hình ảnh tiêu đề đã được đặt sao cho trung tâm của nó luôn ở giữa tiêu đề, bất kể tiêu đề được đặt ở độ rộng nào. Nếu trang web đang được xem trên màn hình hẹp hơn, bạn vẫn có thể nhìn thấy chi tiết quan trọng ở giữa hình ảnh (con người) và phần thừa sẽ bị mất ở hai bên. Nó cao 200px
  • Các hình ảnh nội dung đã được đặt sao cho nếu phần tử cơ thể trở nên nhỏ hơn hình ảnh, thì các hình ảnh bắt đầu co lại để chúng luôn ở bên trong cơ thể, thay vì tràn ra ngoài

Tuy nhiên, các vấn đề phát sinh khi bạn bắt đầu xem trang web trên thiết bị màn hình hẹp. Tiêu đề bên dưới có vẻ ổn, nhưng nó bắt đầu chiếm nhiều chiều cao màn hình đối với thiết bị di động. Và với kích thước này, rất khó để nhìn thấy khuôn mặt của hai người trong hình ảnh nội dung đầu tiên

Hình ảnh không hiển thị trong html trình duyệt di động

Một cải tiến sẽ là hiển thị phiên bản đã cắt của hình ảnh hiển thị các chi tiết quan trọng của hình ảnh khi trang web được xem trên màn hình hẹp. Hình ảnh được cắt xén thứ hai có thể được hiển thị cho thiết bị màn hình có chiều rộng trung bình, chẳng hạn như máy tính bảng. Vấn đề chung mà theo đó bạn muốn phục vụ các hình ảnh được cắt xén khác nhau theo cách đó, cho các bố cục khác nhau, thường được gọi là vấn đề về hướng nghệ thuật

Ngoài ra, không cần phải nhúng những hình ảnh lớn như vậy trên trang nếu nó đang được xem trên màn hình di động. Làm như vậy có thể lãng phí băng thông; . Ngược lại, một hình ảnh raster nhỏ bắt đầu trông có hạt khi được hiển thị lớn hơn kích thước ban đầu của nó (hình ảnh raster là một số pixel chiều rộng và một số pixel chiều cao, như chúng ta đã thấy khi xem đồ họa vector). Lý tưởng nhất là nhiều độ phân giải sẽ được cung cấp cho trình duyệt web của người dùng. Sau đó, trình duyệt có thể xác định độ phân giải tối ưu để tải dựa trên kích thước màn hình của thiết bị người dùng. Đây được gọi là vấn đề chuyển đổi độ phân giải

Để làm cho mọi thứ trở nên phức tạp hơn, một số thiết bị có màn hình độ phân giải cao cần hình ảnh lớn hơn bạn mong đợi để hiển thị đẹp mắt. Đây thực chất là cùng một vấn đề, nhưng trong một bối cảnh hơi khác

Bạn có thể nghĩ rằng hình ảnh vector sẽ giải quyết được những vấn đề này và chúng làm được ở một mức độ nhất định — chúng có kích thước tệp nhỏ và tỷ lệ tốt và bạn nên sử dụng chúng bất cứ khi nào có thể. Tuy nhiên, chúng không phù hợp với tất cả các loại hình ảnh. Hình ảnh vector rất phù hợp cho đồ họa đơn giản, mẫu, thành phần giao diện, v.v. , nhưng nó bắt đầu trở nên rất phức tạp để tạo một hình ảnh dựa trên véc-tơ với loại chi tiết mà bạn sẽ tìm thấy trong một bức ảnh chẳng hạn. Các định dạng hình ảnh raster như JPEG phù hợp hơn với loại hình ảnh chúng ta thấy trong ví dụ trên

Loại vấn đề này không tồn tại khi web lần đầu tiên xuất hiện, vào đầu những năm 90 đến giữa những năm 90 - vào thời điểm đó, thiết bị duy nhất tồn tại để duyệt Web là máy tính để bàn và máy tính xách tay, vì vậy các kỹ sư trình duyệt và người viết thông số kỹ thuật thậm chí còn không nghĩ đến việc triển khai . Các công nghệ hình ảnh đáp ứng đã được triển khai gần đây để giải quyết các vấn đề nêu trên bằng cách cho phép bạn cung cấp cho trình duyệt một số tệp hình ảnh, tất cả đều hiển thị cùng một thứ nhưng chứa số lượng pixel khác nhau (chuyển đổi độ phân giải) hoặc các hình ảnh khác nhau phù hợp với các phân bổ không gian khác nhau (hướng nghệ thuật

Ghi chú. Các tính năng mới được thảo luận trong bài viết này — //_______54_______ — đều được hỗ trợ trong trình duyệt máy tính để bàn và thiết bị di động hiện đại (bao gồm cả trình duyệt Edge của Microsoft, mặc dù không phải Internet Explorer. )

Trong phần này, chúng ta sẽ xem xét hai vấn đề được minh họa ở trên và chỉ ra cách giải quyết chúng bằng các tính năng hình ảnh phản hồi của HTML. Bạn nên lưu ý rằng chúng tôi sẽ tập trung vào các yếu tố

<img
  srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
  sizes="(max-width: 600px) 480px,
         800px"
  src="elva-fairy-800w.jpg"
  alt="Elva dressed as a fairy" />
2 cho phần này, như đã thấy trong khu vực nội dung của ví dụ trên — hình ảnh trong tiêu đề trang web chỉ để trang trí và do đó được triển khai bằng cách sử dụng hình nền CSS. CSS được cho là có các công cụ tốt hơn cho thiết kế đáp ứng so với HTML và chúng ta sẽ nói về những công cụ đó trong mô-đun CSS trong tương lai

Vì vậy, vấn đề mà chúng tôi muốn giải quyết với chuyển đổi độ phân giải là gì? . Theo truyền thống, phần tử

<img
  srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
  sizes="(max-width: 600px) 480px,
         800px"
  src="elva-fairy-800w.jpg"
  alt="Elva dressed as a fairy" />
2 tiêu chuẩn chỉ cho phép bạn trỏ trình duyệt tới một tệp nguồn duy nhất

<img src="elva-fairy-800w.jpg" alt="Elva dressed as a fairy" />

Tuy nhiên, chúng tôi có thể sử dụng hai thuộc tính — và — để cung cấp một số hình ảnh nguồn bổ sung cùng với các gợi ý để giúp trình duyệt chọn đúng hình ảnh. Bạn có thể xem một ví dụ về điều này trong phản hồi của chúng tôi. html ví dụ trên GitHub (xem thêm mã nguồn)

<img
  srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
  sizes="(max-width: 600px) 480px,
         800px"
  src="elva-fairy-800w.jpg"
  alt="Elva dressed as a fairy" />

Các thuộc tính srcset

<img
  srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
  sizes="(max-width: 600px) 480px,
         800px"
  src="elva-fairy-800w.jpg"
  alt="Elva dressed as a fairy" />
0 trông có vẻ phức tạp, nhưng chúng không quá khó hiểu nếu bạn định dạng chúng như minh họa ở trên, với một phần khác nhau của giá trị thuộc tính trên mỗi dòng. Mỗi giá trị chứa một danh sách được phân tách bằng dấu phẩy và mỗi phần của các danh sách đó được tạo thành từ ba phần phụ. Bây giờ chúng ta hãy chạy qua nội dung của từng

srcset xác định tập hợp các hình ảnh mà chúng tôi sẽ cho phép trình duyệt lựa chọn và kích thước của mỗi hình ảnh. Mỗi tập hợp thông tin hình ảnh được phân tách với thông tin trước đó bằng dấu phẩy. Đối với mỗi người, chúng tôi viết

  1. Tên tệp hình ảnh (
    <img
      srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
      sizes="(max-width: 600px) 480px,
             800px"
      src="elva-fairy-800w.jpg"
      alt="Elva dressed as a fairy" />
    
    9)
  2. một không gian
  3. Chiều rộng nội tại của hình ảnh tính bằng pixel (
    <img
      srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
      src="elva-fairy-640w.jpg"
      alt="Elva dressed as a fairy" />
    
    0) — lưu ý rằng điều này sử dụng đơn vị
    <img
      srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
      src="elva-fairy-640w.jpg"
      alt="Elva dressed as a fairy" />
    
    1, không phải
    <img
      srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
      src="elva-fairy-640w.jpg"
      alt="Elva dressed as a fairy" />
    
    2 như bạn có thể mong đợi. Kích thước nội tại của hình ảnh là kích thước thực của nó, có thể tìm thấy kích thước này bằng cách kiểm tra tệp hình ảnh trên máy tính của bạn (ví dụ: trên máy Mac, bạn có thể chọn hình ảnh trong Finder và nhấn Cmd + I để hiển thị màn hình thông tin)

<img
  srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
  sizes="(max-width: 600px) 480px,
         800px"
  src="elva-fairy-800w.jpg"
  alt="Elva dressed as a fairy" />
0 xác định một tập hợp các điều kiện phương tiện (e. g. chiều rộng màn hình) và cho biết nên chọn kích thước hình ảnh nào là tốt nhất, khi một số điều kiện phương tiện nhất định là đúng — đây là những gợi ý mà chúng ta đã nói trước đó. Trong trường hợp này, trước mỗi dấu phẩy chúng ta viết

  1. Điều kiện phương tiện (
    <img
      srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
      src="elva-fairy-640w.jpg"
      alt="Elva dressed as a fairy" />
    
    4) — bạn sẽ tìm hiểu thêm về những điều này trong chủ đề CSS, nhưng bây giờ, hãy chỉ nói rằng điều kiện phương tiện mô tả trạng thái có thể xảy ra mà màn hình có thể ở trong đó. Trong trường hợp này, chúng tôi đang nói "khi chiều rộng của khung nhìn từ 600 pixel trở xuống"
  2. một không gian
  3. Chiều rộng của vùng mà hình ảnh sẽ lấp đầy khi điều kiện phương tiện là đúng (
    <img
      srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
      src="elva-fairy-640w.jpg"
      alt="Elva dressed as a fairy" />
    
    5)

Ghi chú. Đối với chiều rộng vùng, thay vì cung cấp chiều rộng tuyệt đối (ví dụ:

<img
  srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
  src="elva-fairy-640w.jpg"
  alt="Elva dressed as a fairy" />
5), bạn có thể cung cấp chiều rộng tương đối so với khung nhìn (ví dụ:
<img
  srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
  src="elva-fairy-640w.jpg"
  alt="Elva dressed as a fairy" />
7) — nhưng không phải là tỷ lệ phần trăm. Bạn có thể nhận thấy rằng chiều rộng của vị trí cuối cùng không có điều kiện phương tiện (đây là giá trị mặc định được chọn khi không có điều kiện phương tiện nào là đúng). Trình duyệt bỏ qua mọi thứ sau điều kiện khớp đầu tiên, vì vậy hãy cẩn thận với cách bạn sắp xếp thứ tự các điều kiện phương tiện

Vì vậy, với các thuộc tính này, trình duyệt sẽ

  1. Nhìn vào chiều rộng thiết bị của nó
  2. Tìm ra điều kiện phương tiện nào trong danh sách
    <img
      srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
      sizes="(max-width: 600px) 480px,
             800px"
      src="elva-fairy-800w.jpg"
      alt="Elva dressed as a fairy" />
    
    0 là điều kiện đầu tiên đúng
  3. Nhìn vào kích thước vị trí được cung cấp cho truy vấn phương tiện đó
  4. Tải hình ảnh được tham chiếu trong danh sách srcset có cùng kích thước với vị trí hoặc, nếu không có, hình ảnh đầu tiên lớn hơn kích thước vị trí đã chọn

Và đó là nó. Tại thời điểm này, nếu trình duyệt hỗ trợ có chiều rộng khung nhìn là 480px tải trang, điều kiện phương tiện

img {
  width: 320px;
}
0 sẽ là đúng và do đó trình duyệt chọn vị trí
<img
  srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
  src="elva-fairy-640w.jpg"
  alt="Elva dressed as a fairy" />
5.
<img
  srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
  sizes="(max-width: 600px) 480px,
         800px"
  src="elva-fairy-800w.jpg"
  alt="Elva dressed as a fairy" />
9 sẽ được tải vì chiều rộng vốn có của nó (
<img
  srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
  src="elva-fairy-640w.jpg"
  alt="Elva dressed as a fairy" />
0) gần nhất với kích thước vùng. Hình ảnh 800px là 128KB trên đĩa, trong khi phiên bản 480px chỉ là 63KB — tiết kiệm được 65KB. Bây giờ, hãy tưởng tượng nếu đây là một trang có nhiều hình ảnh trên đó. Sử dụng kỹ thuật này có thể tiết kiệm rất nhiều băng thông cho người dùng di động

Ghi chú. Khi kiểm tra điều này với trình duyệt trên máy tính để bàn, nếu trình duyệt không tải được hình ảnh hẹp hơn khi bạn đã đặt cửa sổ của nó thành chiều rộng hẹp nhất, hãy xem chế độ xem là gì (bạn có thể ước tính nó bằng cách vào bảng điều khiển JavaScript của trình duyệt . Các trình duyệt khác nhau có kích thước tối thiểu mà chúng sẽ cho phép bạn giảm chiều rộng cửa sổ xuống và chúng có thể rộng hơn bạn nghĩ. Khi kiểm tra nó với trình duyệt di động, bạn có thể sử dụng các công cụ như trang

img {
  width: 320px;
}
5 của Firefox để kiểm tra trang được tải trên thiết bị di động bằng các công cụ dành cho nhà phát triển trên máy tính để bàn

Để xem hình ảnh nào đã được tải, bạn có thể sử dụng tab Giám sát mạng của Firefox DevTools hoặc bảng điều khiển Mạng của Chrome DevTools. Đối với Chrome, bạn cũng có thể muốn tắt bộ đệm để ngăn không cho bộ đệm chọn các hình ảnh đã tải xuống

Các trình duyệt cũ hơn không hỗ trợ các tính năng này sẽ bỏ qua chúng. Thay vào đó, các trình duyệt đó sẽ tiếp tục và tải hình ảnh được tham chiếu trong thuộc tính như bình thường

Ghi chú. Trong

img {
  width: 320px;
}
7 của ví dụ được liên kết ở trên, bạn sẽ tìm thấy dòng
img {
  width: 320px;
}
8. điều này buộc các trình duyệt trên thiết bị di động áp dụng chiều rộng khung nhìn thực của chúng để tải trang web (một số trình duyệt di động nói dối về chiều rộng khung nhìn của chúng và thay vào đó tải các trang ở chiều rộng khung nhìn lớn hơn rồi thu nhỏ trang đã tải xuống, điều này không hữu ích lắm cho hình ảnh hoặc thiết kế phản hồi

Nếu bạn đang hỗ trợ nhiều độ phân giải màn hình, nhưng mọi người nhìn thấy hình ảnh của bạn ở cùng kích thước thực tế trên màn hình, bạn có thể cho phép trình duyệt chọn hình ảnh có độ phân giải phù hợp bằng cách sử dụng srcset với bộ mô tả x và không có bộ mô tả

<img
  srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
  sizes="(max-width: 600px) 480px,
         800px"
  src="elva-fairy-800w.jpg"
  alt="Elva dressed as a fairy" />
0 — dễ dàng hơn một chút . Bạn có thể tìm thấy một ví dụ về giao diện này trong srcset-resolutions. html (xem thêm mã nguồn)

<img
  srcset="elva-fairy-320w.jpg, elva-fairy-480w.jpg 1.5x, elva-fairy-640w.jpg 2x"
  src="elva-fairy-640w.jpg"
  alt="Elva dressed as a fairy" />

Hình ảnh không hiển thị trong html trình duyệt di động
Trong ví dụ này, CSS sau đây được áp dụng cho hình ảnh để nó có chiều rộng 320 pixel trên màn hình (còn được gọi là pixel CSS)

img {
  width: 320px;
}

Trong trường hợp này,

<img
  srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
  sizes="(max-width: 600px) 480px,
         800px"
  src="elva-fairy-800w.jpg"
  alt="Elva dressed as a fairy" />
0 là không cần thiết — trình duyệt tìm ra độ phân giải của màn hình mà nó đang được hiển thị và cung cấp hình ảnh phù hợp nhất được tham chiếu trong srcset. Vì vậy, nếu thiết bị truy cập trang có màn hình tiêu chuẩn/độ phân giải thấp, với một pixel thiết bị đại diện cho mỗi pixel CSS, thì hình ảnh
<img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
3 sẽ được tải (1x được ngụ ý, vì vậy bạn không cần thêm nó. ) Nếu thiết bị có độ phân giải cao từ hai pixel thiết bị trên mỗi pixel CSS trở lên, thì hình ảnh
<img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
4 sẽ được tải. Hình ảnh 640px là 93KB, trong khi hình ảnh 320px chỉ là 39KB

Tóm lại, vấn đề về hướng nghệ thuật liên quan đến việc muốn thay đổi hình ảnh được hiển thị để phù hợp với các kích thước hiển thị hình ảnh khác nhau. Ví dụ: một trang web bao gồm ảnh phong cảnh lớn với một người ở giữa khi được xem trên trình duyệt máy tính để bàn. Khi xem trên trình duyệt dành cho thiết bị di động, hình ảnh đó bị thu nhỏ lại, khiến người trong ảnh rất nhỏ và khó nhìn thấy. Có lẽ sẽ tốt hơn nếu hiển thị hình ảnh chân dung, nhỏ hơn trên thiết bị di động, hình ảnh này sẽ phóng to người đó. Phần tử cho phép chúng tôi triển khai loại giải pháp này

Quay trở lại trạng thái không phản hồi ban đầu của chúng tôi. html, chúng tôi có một hình ảnh rất cần chỉ đạo nghệ thuật

<img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />

Hãy sửa lỗi này, với . Giống như

<img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
7 và
<img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
8, phần tử là một trình bao bọc chứa một số phần tử
<picture>
  <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
  <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
  <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
picture>
0 cung cấp các nguồn khác nhau để trình duyệt lựa chọn, tiếp theo là phần tử quan trọng nhất
<img
  srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
  sizes="(max-width: 600px) 480px,
         800px"
  src="elva-fairy-800w.jpg"
  alt="Elva dressed as a fairy" />
2. Mã trong đáp ứng. html trông giống như vậy

<picture>
  <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
  <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
  <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
picture>

  • Các phần tử
    <picture>
      <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
      <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
      <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
    picture>
    
    0 bao gồm thuộc tính
    <picture>
      <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
      <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
      <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
    picture>
    
    3 có chứa điều kiện phương tiện — như với ví dụ về srcset đầu tiên, những điều kiện này là các thử nghiệm quyết định hình ảnh nào được hiển thị — hình ảnh đầu tiên trả về true sẽ được hiển thị. Trong trường hợp này, nếu chiều rộng khung nhìn rộng từ 799px trở xuống, hình ảnh của phần tử
    <picture>
      <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
      <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
      <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
    picture>
    
    0 đầu tiên sẽ được hiển thị. Nếu chiều rộng khung nhìn từ 800px trở lên, thì đó sẽ là chiều rộng thứ hai
  • Các thuộc tính srcset chứa đường dẫn đến hình ảnh để hiển thị. Như chúng ta đã thấy với
    <img
      srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
      sizes="(max-width: 600px) 480px,
             800px"
      src="elva-fairy-800w.jpg"
      alt="Elva dressed as a fairy" />
    
    2 ở trên,
    <picture>
      <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
      <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
      <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
    picture>
    
    0 có thể nhận thuộc tính srcset với nhiều hình ảnh được tham chiếu, cũng như thuộc tính
    <img
      srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
      sizes="(max-width: 600px) 480px,
             800px"
      src="elva-fairy-800w.jpg"
      alt="Elva dressed as a fairy" />
    
    0. Vì vậy, bạn có thể cung cấp nhiều hình ảnh thông qua phần tử , nhưng sau đó cũng cung cấp nhiều độ phân giải cho mỗi hình ảnh. Trên thực tế, có thể bạn sẽ không muốn làm điều này thường xuyên.
  • Trong mọi trường hợp, bạn phải cung cấp yếu tố
    <img
      srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
      sizes="(max-width: 600px) 480px,
             800px"
      src="elva-fairy-800w.jpg"
      alt="Elva dressed as a fairy" />
    
    2, với
    img {
      width: 320px;
    }
    
    6 và
    <picture>
      <source type="image/svg+xml" srcset="pyramid.svg" />
      <source type="image/webp" srcset="pyramid.webp" />
      <img
        src="pyramid.png"
        alt="regular pyramid built from four equilateral triangles" />
    picture>
    
    4, ngay trước
    <picture>
      <source type="image/svg+xml" srcset="pyramid.svg" />
      <source type="image/webp" srcset="pyramid.webp" />
      <img
        src="pyramid.png"
        alt="regular pyramid built from four equilateral triangles" />
    picture>
    
    5, nếu không sẽ không có hình ảnh nào xuất hiện. Điều này cung cấp một trường hợp mặc định sẽ áp dụng khi không có điều kiện phương tiện nào trả về đúng (bạn thực sự có thể xóa phần tử
    <picture>
      <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
      <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
      <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
    picture>
    
    0 thứ hai trong ví dụ này) và một dự phòng cho các trình duyệt không hỗ trợ phần tử

Mã này cho phép chúng tôi hiển thị hình ảnh phù hợp trên cả màn hình rộng và màn hình hẹp, như hình bên dưới

Hình ảnh không hiển thị trong html trình duyệt di động
Hình ảnh không hiển thị trong html trình duyệt di động

Ghi chú. Bạn chỉ nên sử dụng thuộc tính

<picture>
  <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
  <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
  <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
picture>
3 trong các tình huống chỉ đạo nghệ thuật;

Khi trình duyệt bắt đầu tải một trang, nó sẽ bắt đầu tải xuống (tải trước) bất kỳ hình ảnh nào trước khi trình phân tích cú pháp chính bắt đầu tải và diễn giải CSS và JavaScript của trang. Cơ chế đó nói chung là hữu ích để giảm thời gian tải trang, nhưng nó không hữu ích cho hình ảnh phản hồi — do đó cần triển khai các giải pháp như srcset. Ví dụ: bạn không thể tải phần tử

<img
  srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
  sizes="(max-width: 600px) 480px,
         800px"
  src="elva-fairy-800w.jpg"
  alt="Elva dressed as a fairy" />
2, sau đó phát hiện chiều rộng khung nhìn bằng JavaScript rồi tự động thay đổi hình ảnh nguồn thành hình ảnh nhỏ hơn nếu muốn. Đến lúc đó, hình ảnh gốc đã được tải và bạn cũng sẽ tải hình ảnh nhỏ, điều này thậm chí còn tệ hơn về mặt hình ảnh phản hồi

Các định dạng hình ảnh mới như và có thể duy trì đồng thời kích thước tệp thấp và chất lượng cao. Các định dạng này hiện có hỗ trợ trình duyệt tương đối rộng rãi nhưng ít "độ sâu lịch sử"

cho phép chúng tôi tiếp tục phục vụ các trình duyệt cũ hơn. Bạn có thể cung cấp các loại MIME bên trong thuộc tính srcset4 để trình duyệt có thể từ chối ngay các loại tệp không được hỗ trợ

<picture>
  <source type="image/svg+xml" srcset="pyramid.svg" />
  <source type="image/webp" srcset="pyramid.webp" />
  <img
    src="pyramid.png"
    alt="regular pyramid built from four equilateral triangles" />
picture>

  • Không sử dụng thuộc tính
    <picture>
      <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
      <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
      <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
    picture>
    
    3, trừ khi bạn cũng cần chỉ đạo nghệ thuật
  • Trong phần tử
    <picture>
      <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg" />
      <source media="(min-width: 800px)" srcset="elva-800w.jpg" />
      <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva" />
    picture>
    
    0, bạn chỉ có thể tham khảo các hình ảnh thuộc loại được khai báo trong phần tử srcset4
  • Sử dụng danh sách được phân tách bằng dấu phẩy với srcset
    <img
      srcset="elva-fairy-480w.jpg 480w, elva-fairy-800w.jpg 800w"
      sizes="(max-width: 600px) 480px,
             800px"
      src="elva-fairy-800w.jpg"
      alt="Elva dressed as a fairy" />
    
    0, nếu cần

Đối với việc học tích cực này, chúng tôi mong bạn dũng cảm và làm điều đó một mình, chủ yếu là. Chúng tôi muốn bạn triển khai màn hình hẹp/ảnh chụp màn hình rộng theo định hướng nghệ thuật phù hợp của riêng bạn bằng cách sử dụng và một ví dụ chuyển đổi độ phân giải sử dụng srcset

  1. Viết một số HTML đơn giản để chứa mã của bạn (sử dụng 2 làm điểm bắt đầu, nếu bạn thích)
  2. Tìm một hình ảnh phong cảnh màn hình rộng đẹp với một số loại chi tiết có trong đó ở đâu đó. Tạo một phiên bản có kích thước web của nó bằng trình chỉnh sửa đồ họa, sau đó cắt nó để hiển thị một phần nhỏ hơn phóng to chi tiết và tạo một hình ảnh thứ hai (rộng khoảng 480px là tốt cho việc này)
  3. Sử dụng phần tử để triển khai trình chuyển đổi hình ảnh theo hướng nghệ thuật
  4. Tạo nhiều tệp hình ảnh có kích thước khác nhau, mỗi tệp hiển thị cùng một hình ảnh
  5. Sử dụng srcset/5 để tạo ví dụ về trình chuyển đổi độ phân giải, để phục vụ cùng một hình ảnh có kích thước ở các độ phân giải khác nhau hoặc các kích thước hình ảnh khác nhau ở các độ rộng khung nhìn khác nhau

Đó là gói dành cho hình ảnh phản hồi — chúng tôi hy vọng bạn thích chơi với những kỹ thuật mới này. Như một bản tóm tắt, có hai vấn đề khác biệt mà chúng tôi đã thảo luận ở đây

  • chỉ đạo nghệ thuật. Sự cố theo đó bạn muốn cung cấp hình ảnh đã cắt cho các bố cục khác nhau — ví dụ: hình ảnh phong cảnh hiển thị toàn cảnh cho bố cục máy tính để bàn và hình ảnh dọc hiển thị đối tượng chính được phóng to cho bố cục di động. Bạn có thể giải quyết vấn đề này bằng cách sử dụng phần tử
  • chuyển đổi độ phân giải. Vấn đề theo đó bạn muốn phân phối các tệp hình ảnh nhỏ hơn cho các thiết bị màn hình hẹp, vì chúng không cần hình ảnh lớn như màn hình máy tính để bàn — và phân phát các hình ảnh có độ phân giải khác nhau cho màn hình mật độ cao/mật độ thấp. Bạn có thể giải quyết vấn đề này bằng đồ họa vector (hình ảnh SVG) và thuộc tính with

Điều này cũng dẫn đến việc đóng toàn bộ mô-đun Đa phương tiện và nhúng. Điều duy nhất cần làm bây giờ trước khi tiếp tục là thử đánh giá Đa phương tiện và nhúng của chúng tôi và xem bạn tiếp tục như thế nào. Chúc vui vẻ

Tại sao hình ảnh không hiển thị trong HTML trong Điện thoại di động?

Làm theo các bước sau. Trong trình duyệt, điều hướng đến Menu > Khác > Cài đặt. Trong phần Cài đặt, hãy đảm bảo chọn cả Tải hình ảnh và Bật JavaScript . Nếu tùy chọn này khả dụng, hãy nhấn vào Đặt kích thước bộ đệm và tăng kích thước bộ đệm.

Tại sao hình ảnh của tôi không hoạt động trong HTML?

Có một số lý do có thể khiến hình ảnh của bạn không hiển thị trên các trang của bạn như mong đợi. Tệp hình ảnh không nằm ở cùng vị trí được chỉ định trong thẻ IMG của bạn . Hình ảnh không có cùng tên tệp như được chỉ định trong thẻ IMG của bạn. Tệp hình ảnh bị hỏng hoặc bị hỏng.

Làm cách nào để thêm hình ảnh vào HTML trên thiết bị di động?

Chúng ta nên sử dụng thẻ … . Thẻ

Tại sao liên kết hình ảnh của tôi không hiển thị trong HTML?

Điều này thường xảy ra theo một trong ba cách. tệp hình ảnh không còn nằm ở vị trí được chỉ định trong thẻ ; . tệp hình ảnh bị hỏng hoặc bị hỏng.