Tôi có thể sử dụng các thẻ <link> trong phần thân của tài liệu HTML không?


20

Tôi có thể sử dụng <link>các thẻ trong phần thân của trang HTML không? Tôi đã cố gắng tìm câu trả lời cho câu hỏi này, nhưng tìm thấy thông tin mâu thuẫn.

Khi thêm đánh dấu microdata của Schema.org vào trang HTML, tôi muốn thêm thông tin chính tắc trong thẻ liên kết như thế này:

<div itemscope itemtype="http://schema.org/Book">
  <span itemprop="name">The Catcher in the Rye</span>
  <link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
  by <span itemprop="author">J.D. Salinger</span>
</div>

Tôi đã nhận được mã ví dụ ở trên từ Schema.org . Theo họ, đây là cách dành cho những người muốn thêm một tài liệu tham khảo chính tắc vào một mục, nhưng không muốn đặt một siêu liên kết trên trang web của họ.

Tuy nhiên, W3 nêu rõ rằng <link>các thẻ chỉ nên được đặt trong phần đầu, do đó làm cho ví dụ Schema.org không hợp lệ.

Nếu tôi muốn bám vào đánh dấu chính xác, tôi nên làm theo lời khuyên nào?


Bạn đang liên kết đến w3schools.com (không liên quan gì đến W3C), không phải w3.org .
unor

À, vâng tất nhiên, bạn đúng. Đã xóa liên kết đến W3schools. Cảm ơn.
Edward Touw

Đây là những gì xảy ra với SEO: webmasters.googleblog.com/2013/04/ trên
Faiz

Câu trả lời:


23

Microdata mở rộng HTML5 trong một cách mà linkmetacác yếu tố có thể được sử dụng trong body, nếu chúng chứa một itempropthuộc tính.

Nếu itempropthuộc tính có mặt trên linkhoặc meta, chúng là nội dung dòng và nội dung cụm từ. Các phần tử linkmetacó thể được sử dụng khi dự kiến ​​nội dung phrasing nếu itempropthuộc tính có mặt.

Tiện ích mở rộng này hiện cũng được bao gồm trong HTML 5.1 Nightly (Bản thảo của biên tập viên) (xem linkphần tửmetaphần tử ). Nhưng khi đặc tả Microdata trở thành Ghi chú W3C gần đây, chúng ta sẽ phải xem điều gì xảy ra với tham chiếu này.

RDFa 1.1 mở rộng HTML5 trong một cách mà linkmetacác yếu tố có thể được sử dụng trong body, nếu chúng chứa một propertỳthuộc tính.

Nếu @propertythuộc tính RDFa có mặt trên linkhoặc metacác phần tử, chúng PHẢI được xem là tuân thủ nếu được sử dụng trong bodytài liệu. Cụ thể hơn, khi linkhoặc metacác phần tử chứa @propertythuộc tính RDFa và được sử dụng trong bodytài liệu HTML5, chúng PHẢI được coi là nội dung luồng.


Vì vậy, bạn không được phép sử dụng bất kỳ link phần tử nào (ví dụ <link href="" rel="" />:) body, nhưng chỉ những phần tử có itempropthuộc tính (cho Microdata). một propertythuộc tính (cho RDFa).

Do đó, linkphần tử của bạn có thể được sử dụng trong body:

<body>
<!-- … -->
  <link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
<!-- … -->
</body>

Cảm ơn! Vì vậy, nếu tôi hiểu chính xác, tôi có được phép sử dụng <link>thẻ trong phần thân miễn là nó có chứa thuộc tính itemprop không? Và miễn là thuộc tính itemprop được bao gồm, tôi cũng có thể bao gồm hrefnhư được sử dụng trong câu hỏi ban đầu của mình?
Edward Touw

@EdwardTouw: Có; bạn PHẢI đưa ra hrefthuộc tính trong mọi trường hợp. Vì vậy, miễn là linkphần tử có itempropthuộc tính, bạn có thể sử dụng nó trong body. Sau đó, nó không còn là siêu dữ liệu cho toàn bộ tài liệu (giống như trường hợp của linkcác phần tử thông thường trong head), mà là phần tử "ẩn" cho Microdata.
unor

11

W3Schools không đặt tiêu chuẩn công nghiệp về mã hóa HTML. Chúng chỉ đơn giản là một trang web tham khảo của bên thứ 3 không liên kết với W3C . W3Schools và các trang web khác thường sai khi sử dụng các công nghệ mã hóa tiên tiến như SchemaResponsive design . Khi sử dụng mã khá mới, cửa hàng một cửa của bạn phải là W3C như đặt tiêu chuẩn tuân thủ và có thể là Bác sĩ HTML5 nếu bạn cần trợ giúp để hiểu HTML5 thông qua chúng không chính thức nhưng được tôn trọng cao.

Nhìn vào mã của bạn, nó vượt qua xác thực W3C mà không có bất kỳ vấn đề nào với phần tử liên kết có trong<body> </body>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<div itemscope itemtype="http://schema.org/Book">
  <span itemprop="name">The Catcher in the Rye</span><link itemprop="url" href="http://en.wikipedia.org/wiki/The_Catcher_in_the_Rye" />
  by <span itemprop="author">J.D. Salinger</span>
</div>
</body>
</html>

TRẢ LỜI NGẮN HẠN: Có, bạn có thể sử dụng<LINK>bên trong<body> </body>nhưng như Unor đã đề cập trong câu trả lời của anh ta phải bao gồm itemprop.


Lưu ý rằng bạn đang liên kết đến một bản nháp HTML5 từ năm 2009. Trong HTML5 CR hiện tại , định nghĩa liên quan không được bao gồm.
unor

0

Phần tử liên kết có thể được thêm vào phần thân của tài liệu HTML nếu có itempropthuộc tính. Đây là một bản demo .

Ngoài ra đây là một ví dụ thuộc tính itemprop liên kết .


2
Nếu đây là các liên kết đến trang web của bạn, vui lòng thêm từ chối trách nhiệm như "Tôi đã trình bày điều này trong blog của tôi ở đây ...".
dan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.