Câu trả lời:
Một thẻ phải luôn được đóng lại bằng ký hiệu thẻ gần >
(nếu chúng ta bỏ qua quy tắc SGML chắc chắn rằng danh nghĩa áp dụng trong phi XHTML HTML nhưng không bao giờ được thực hiện trong các trình duyệt).
Những gì bạn muốn hỏi là liệu các yếu tố cần phải được đóng bởi các thẻ kết thúc. Câu trả lời là HTML không phải XHTML (bao gồm HTML5 trong tuần tự hóa HTML), không có thẻ kết thúc nào được yêu cầu hoặc cho phép meta
và link
các yếu tố. Tuy nhiên, trên thực tế, các trình duyệt chỉ bỏ qua các thẻ kết thúc rõ ràng cho chúng, cũng như việc sùng bái hàng hóa /
trước đây >
, nếu bạn sử dụng chúng. Và HTML5 cũng biến điều này thành một quy tắc bằng cách chính thức cho phép cả /
tuần tự hóa HTML.
Trong XHTML, các quy tắc XML được áp dụng, do đó, mọi phần tử, không có ngoại lệ, phải có cả thẻ bắt đầu và thẻ kết thúc, nhưng cùng một thẻ có thể được sử dụng cho cả hai vai trò nếu nội dung phần tử trống, ví dụ <meta name="foo" content="bar"/>
như viết tắt <meta name="foo" content="bar"></meta>
. Nếu bạn vi phạm điều này khi phân phát tài liệu có loại nội dung XML (XHTML) cho trình duyệt tuân thủ, thì tài liệu của bạn hoàn toàn không được hiển thị; một thông báo lỗi được hiển thị thay thế.
Khi sử dụng máy chủ XHTML với loại nội dung HTML ( Content-Type: text/html
), vì các tài liệu XHTML hầu như luôn có trên web, khi đó các trình duyệt sẽ thực sự áp dụng các quy tắc HTML không phải XHTML.
Để tóm tắt:
<meta ...>
không/
<meta ... />
, hãy làm như vậy; nó không hữu ích, nhưng nó không gây hại (trừ khi bạn cố gắng xác thực, ví dụ như đối với tài liệu HTML 4.01)./
trước >
"). Chỉ cần nghĩ rằng tôi sẽ làm rõ để tránh làm rối internet với nhiều nhầm lẫn. </pedant_alert>
:)
Nó phụ thuộc vào doctype. HTML5 không cần đóng cửa. XHTML nào.
Trong HTML5, các phần tử được gọi là void (các phần tử không thể có nội dung) không cần đóng, vì chúng tự đóng. Nhưng nó vẫn hợp lệ nếu bạn đóng chúng ..
Đọc thêm về nó ở đây: void-yếu tố