Tên thuộc tính đã lỗi thời, hành vi chính xác khi xử lý các neo là gì?


18

Khi kiểm tra mã của tôi bằng trình xác nhận w3 html5 , tôi nhận được thông báo cảnh báo này:

Cảnh báo : nameThuộc tính đã lỗi thời. idThay vào đó, hãy xem xét đặt một thuộc tính vào thùng chứa gần nhất.

Câu hỏi:

  • Container gần nhất có nghĩa là gì?
  • Là trống <a>bây giờ không dùng nữa?
  • Có nên sử dụng idthay thế name?

Câu trả lời:


9

[A] là các thẻ giữ chỗ trống hoàn toàn không dùng nữa và các neo có thể chỉ đơn giản trỏ đến bất kỳ phần tử nào có id thay thế?

Tôi thích chuyển người dùng đến các thẻ tiêu đề (theo hành vi mặc định của MediaWiki) khi cần các liên kết trong trang, nhưng vâng, bạn có thể giải quyết ID của bất kỳ yếu tố nào.


17

Nếu bạn cần chuyển người dùng đến các liên kết trong trang, còn được gọi là định danh phân đoạn , bạn có thể đặt idthuộc tính (được sử dụng cho nhiều hơn chỉ các id id ) trên bất kỳ phần tử nào . Sau đó sử dụng thông thường #trong URL của một hrefthuộc tính của một ayếu tố. Đây là một ví dụ:

<body>
  <p>Despite the many
    <a href="#benefits-of-gum-chewing">benefits</a>
    you may experience while chewing gum, there are also many drawbacks,
    especially with 
    <a href="http://www.example.org/sugar.html#cons">non-sugarless</a>
    gum.</p>
  ...
  <section id="benefits-of-gum-chewing">
    <h1>Benefits of Gum Chewing</h1>
    ...
  </section>
</body>

Khi viết các trang của riêng tôi, tôi muốn đưa ra idtừng <section>thẻ (HTML5), ngay cả khi tôi không có kế hoạch sử dụng nó. Giá trị của idphiên bản thân thiện với URL của nội dung tiêu đề của nó. Bạn có thể đạt được hiệu quả tương tự bằng cách gán tương tự idcho một <h1>, v.v.

Cuối cùng, <a>các thẻ trống không bị phản đối, như được chỉ ra trong thông số HTML5 :

Nếu aphần tử không có hrefthuộc tính, thì phần tử đó đại diện cho một trình giữ chỗ cho nơi mà một liên kết có thể được đặt khác

Ngoài ra, áp dụng tương tự cho areacác yếu tố :

Các hrefthuộc tính trên aareacác yếu tố không cần thiết; khi các yếu tố đó không có hrefthuộc tính, chúng không tạo ra các siêu liên kết.


2

Đối với HTML5, namethuộc tính hiện không được dùng nữa, vì vậy điều đó có nghĩa là sử dụng idthay thế name. Nếu không, mọi thứ khác đều giống nhau.

<a> KHÔNG được phản đối.


Trong khi câu trả lời này là tốt, một liên kết đến tài liệu hoặc một bài viết giải thích sự phản đối sẽ làm cho nó thậm chí còn tốt hơn.
Stephen Ostermiller

1
Cụ thể, đó là namethuộc tính trên phần tử neo bị phản đối / lỗi thời. Các namethuộc tính là vẫn hoàn toàn hợp lệ (và bắt buộc) vào các yếu tố khác.
MrWhite
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.