Câu trả lời:
Theo các tiêu chuẩn web, bạn không được phép đặt các phần tử khối vào các phần tử nội tuyến.
Như h1
là một phần tử khối và a
là một phần tử nội tuyến, cách đúng là:
<h1><a href="#">This is a title</a></h1>
Đây là một liên kết để bạn có thể tìm hiểu thêm: w3 Mô hình định dạng trực quan
Tuy nhiên, có một ngoại lệ mà trong HTML5 nó là hợp lệ để quấn yếu tố khối cấp cao (như div
, p
hoặc h*
) trong thẻ neo. Việc bao bọc các phần tử cấp khối trong các phần tử nội tuyến không phải là neo vẫn đi ngược lại các tiêu chuẩn.
HTML5 cập nhật chủ đề này: bây giờ có thể bọc các phần tử cấp khối bằng chữ A, như đã nêu trong một câu hỏi khác: https://stackoverflow.com/a/9782054/674965 và tại đây: http://davidwalsh.name/html5- phần tử-liên kết
Theo như tôi hiểu, HTML5 cho phép bạn bọc các phần tử cấp khối trong các thẻ liên kết. Tuy nhiên, lỗi có thể xuất hiện trong các trình duyệt cũ hơn. Tôi gặp sự cố này với Firefox 3.6.18 và đã chèn moz-rs-header = "" vào mã của mình. Vì vậy, phong cách của tôi đã phá vỡ. Nếu bạn quan tâm đến một tác phẩm xung quanh, bạn có thể bọc các thẻ liên kết trong div. Phần sau cung cấp giải thích rõ hơn về lý do tại sao mã bổ sung hoạt động http://oli.jp/2009/html5-block-level-links/