2014-06-09 24 views
8

Trong khi xác nhận đánh dấu thông qua dịch vụ W3C validator đã lỗi dưới đây nàycuối Stray thẻ img

Stray thẻ cuối img

Mã là như dưới đây

<a title="text" href="url"> 
<img class="text" src="imgSrc" alt="Text"></img> 
</a> 

nó có nghĩa là gì? Làm thế nào chúng ta có thể tránh nó?

+1

Bạn nên luôn chỉ định chuỗi 'doctype' (nếu có) xuất hiện ở đầu trang, vì điều này quy định phương thức xác thực. –

Trả lời

11

Nếu tài liệu của bạn là tương thích với XHTML sau đó bạn phải đóng img tag với <img src="image.jpg"/>, không phải với <img>...</img>.

Nếu tài liệu của bạn là HTML5 tuân thủ, thì bạn không cần phần />, chỉ sử dụng <img src="image.jpg">

Và nếu bạn tự hỏi điều gì có nghĩa là tài liệu nên XHTML hoặc HTML5 compliant - đây là dòng đầu tiên của bạn trang HTML, cái gọi là document type definition:

<!DOCTYPE HTML> cho HTML5 và

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> cho XHTML 1.0 Transitional

LƯU Ý: Tuyên bố <!DOCTYPE> là bắt buộc (nếu bạn muốn các trang của mình xác thực với trình xác thực HTML) và phải luôn là điều đầu tiên trong tài liệu HTML.

GHI CHÚ: Mặc dù định nghĩa loại tài liệu về mặt kỹ thuật không bắt buộc đối với trang web đang hoạt động, bạn nên luôn luôn bao gồm nó trong mã của mình. Khi bạn học cách xây dựng các trang web, hãy tập thói quen luôn bao gồm định nghĩa kiểu tài liệu trong mã của bạn.

More đọc:

+1

' ...' là XHTML hợp lệ, không được đề xuất cho các trang web vì lý do tương thích. Rõ ràng vấn đề không xuất hiện khi xác thực XHTML. –

+0

Hi @ bodi0 cảm ơn câu trả lời của bạn. Nó đã giúp đỡ tôi. –

2

Về cơ bản, nó có nghĩa là bạn nên loại bỏ các </img>, vì nó không cần thiết cho <img> tag:

<img class="text" src="imgSrc" alt="Text"> 

Ngoài ra, chỉ dành riêng cho mục đích tham khảo, cũng có cách xhml của "đóng cửa" tag:

<img class="text" src="imgSrc" alt="Text" /> 
1

Như vậy, “tag cuối Stray ...” có nghĩa là chỉ có một thẻ cuối cùng là không được phép vào bối cảnh nơi nó xuất hiện. Khi giải thích của trình xác thực cho biết: “Trình xác thực đã tìm thấy thẻ kết thúc cho phần tử ở trên, nhưng phần tử đó hiện không mở. Điều này thường do thẻ kết thúc còn sót lại từ phần tử đã bị xóa trong khi chỉnh sửa hoặc bằng phần tử đóng kín (nếu bạn có lỗi liên quan đến yếu tố được sử dụng khi không được phép, điều này gần như chắc chắn). Trong trường hợp sau, lỗi này sẽ biến mất ngay sau khi bạn khắc phục sự cố ban đầu.”

Từ các triệu chứng (chuỗi thông báo lỗi), chúng tôi có thể phỏng đoán rằng bạn đang xác thực với HTML5 trong tuần tự hóa HTML. Điều này có nghĩa là không có thẻ kết thúc nào được phép cho phần tử img, vì thẻ bắt đầu được xử lý cũng như đóng phần tử ("phần tử đóng ngầm").

Do đó, giải pháp là xóa thẻ </img> hoặc để xác thực với HTML5 trong xHTML serialization. Cái sau không thực tế cho các trang web, nhưng nếu bạn đang sử dụng HTML cho một cái gì đó khác, bạn nên xác thực bằng URL đề cập đến một tài nguyên được phục vụ với một kiểu nội dung XML.

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