2012-08-13 42 views
18

Tôi đang viết một khóa học HTML giới thiệu. Tôi nhớ đã khám phá ra 9 năm trước khi tôi đang học HTML rằng cả hai <img><image> đều hoạt động như thẻ để hiển thị hình ảnh, ít nhất là trong IE. Thật vậy, <image> vẫn hoạt động trong các phiên bản mới nhất của 5 trình duyệt hàng đầu.<img> và thẻ <image> trong HTML

Tôi nhận thấy rằng <image> không chính xác và sẽ không xác thực với http://validator.w3.org. Tuy nhiên, có ai biết về một trình duyệt sẽ không hiển thị hình ảnh nếu <image> được sử dụng thay vì <img> không?

Hơn nữa, tôi cho rằng trình duyệt hiện đại hiển thị hình ảnh được tạo bằng thẻ <image> đơn giản chỉ vì đó là lỗi phổ biến mà người mới bắt đầu mắc phải. Giả định này có đúng không?

+10

Không phải vì đó là "lỗi người mới bắt đầu", nhưng vì "trang web bị hỏng sử dụng nó và trình duyệt hiện đại cần phải giúp các trang web đó bị" dọc theo ".. vì bạn đang dạy một khóa học, bạn có thể đảm bảo ít trang web bị hỏng hơn: * chỉ * 'img' là hợp lệ/đúng/chấp nhận được. :) –

+0

Tôi đã nhận thấy một số người mới bắt đầu sử dụng nhầm hình ảnh thay vì img trong khóa học tương tác của tôi (http://codeavengers.com) mặc dù tôi tuyên bố rõ ràng rằng họ cần phải cẩn thận khi sử dụng hình ảnh img và NOT. Một số người dùng đã viết cho tôi nhầm lẫn về thông báo lỗi cho biết họ nên sử dụng hình ảnh img và NOT vì hình ảnh là INVALID ... mặc dù hình ảnh có vẻ hiển thị hoàn hảo! – Mike

+0

Chỉ yêu cầu xác nhận 100% w3c * hoặc * biện minh cho hiệu lực [trong] trên tất cả các nhiệm vụ - vì vậy nếu chúng * có thể * biện minh cho 'hình ảnh', nhưng nếu chúng không thể .. :) –

Trả lời

16

Có và không. Khi bạn chỉ ra <image> là một từ đồng nghĩa với <img> trong một thời gian dài. Tôi tin rằng đó là trình duyệt Netscape đầu tiên thực hiện điều này, có thể bù đắp cho lỗi người dùng hoặc có thể do có tranh chấp vào thời điểm liệu thành phần có thực sự được gọi là <image> hoặc <img>.

Dù sao, như pst chỉ ra, một khi nó được thực hiện trong một trình duyệt thống trị thị trường thời gian, các trang web dựa vào nó. Sự kiên trì của nó sau đó giảm xuống áp lực thương mại đối với các nhà sản xuất trình duyệt. Nếu tất cả các trình duyệt chính hỗ trợ nó, thì Trình duyệt A quyết định rằng mặc dù nó hỗ trợ nó trong Phiên bản V, nó sẽ không hỗ trợ nó trong phiên bản V + 1, ngay sau khi phiên bản V + 1 được phát hành, họ nhận được rất nhiều thông báo nói rằng " Trang web S bị hỏng trong trình duyệt mới nhất của bạn. Trình duyệt của bạn là rác. Tôi sẽ chuyển sang trình duyệt B ".

Thông số phân tích cú pháp HTML5 yêu cầu thẻ <image> được ánh xạ tới phần tử img ở giai đoạn xây dựng cây, vì vậy không bao giờ có thể biện minh cho việc sử dụng nó.

Tôi sẽ ít quan tâm đến trình duyệt hơn so với các người tiêu dùng HTML khác, chẳng hạn như các công cụ tìm kiếm ít được biết đến hơn. Tôi tin rằng image đối với img từ đồng nghĩa không được biết đến rộng rãi và do đó, nhiều công cụ như vậy sẽ không nhận được <image> như tham chiếu tài nguyên hình ảnh.

+0

Tôi đã không nhận thấy rằng thông số phân tích cú pháp HTML5 yêu cầu thẻ hình ảnh được ánh xạ tới img. Tôi vui vì bạn đã đề cập đến nó như tôi đã giả định trong một bài học của tôi trên http://codeavengers.com rằng thẻ hình ảnh sẽ xuất hiện trong cây DOM nếu người học đã mắc lỗi đó. – Mike

0

Thật vậy. Các trình duyệt hiện đại sẽ hiển thị mã không hợp lệ để đảm bảo rằng các trang web cũ vẫn hiển thị chính xác và mã không hợp lệ không làm hỏng một trang.

Ví dụ: hãy quên đóng một <tr> trước khi bạn mở một tài khoản mới - tất cả các trình duyệt hiện đại sẽ chỉ đơn giản giả sử bạn đã đóng nó.

Tôi không biết trình duyệt được cập nhật, được sử dụng tốt sẽ không hiển thị thẻ <image>, nhưng sẽ hiển thị thẻ <img>.

+5

Theo [whatwg] (http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#syntax-tag-omission) '' là tùy chọn. Nếu bạn bỏ qua các thẻ '', trang của bạn sẽ vẫn xác thực. Vì vậy, tôi không chắc chắn rằng ví dụ '' là ví dụ tốt nhất cho câu hỏi này. – Mike

4

Tôi vừa hoàn thành gỡ lỗi vấn đề này, mà tôi đã cam kết, trước đây chưa đọc các câu trả lời ở trên.

Trong khi không có trình duyệt hoàn chỉnh, ứng dụng email thường được sử dụng như thể đó là trình duyệt.

Tôi đã phát hiện ra, một cách khó khăn, rằng ứng dụng Gmail dành cho Android, sử dụng HTML thuần túy (với đặc tả DTD mặc định thường), không hiển thị vấn đề này. Nó chỉ phản hồi lại <img /> [tức là, không phải <image />]. gmail.com là tốt với <image />, nhưng không phải là ứng dụng khách gmail Android.

Mặc dù ứng dụng email không thực sự là trình duyệt, tôi nghĩ bạn có thể vẫn quan tâm.

+3

Chào mừng bạn đến với Stack Overflow! Tôi đã sửa định dạng bài đăng của bạn để HTML hiển thị. Để tham khảo trong tương lai, các khối mã có thể được định dạng bằng cách thụt lề chúng với bốn dấu cách, mã nội tuyến có thể được định dạng bằng cách bao quanh nó với các dấu gạch chéo ngược ('). Bạn cũng có thể chọn mã của mình và nhấp vào nút ** {} ** trong trình chỉnh sửa. – Stijn

Các vấn đề liên quan