Theo tôi biết, điều này đúng:
<div>
<p>some words</p>
</div>
Nhưng điều này là sai:
<p>
<div>some words</div>
</p>
Cái đầu tiên có thể vượt qua trình xác nhận W3C (XHTML 1.0), nhưng cái thứ hai thì không thể. Tôi biết rằng không ai sẽ viết mã như cái thứ hai. Tôi chỉ muốn biết tại sao.
Và những gì về mối quan hệ ngăn chặn của các thẻ khác?
p
là một yếu tố cấp khối không có gì để làm với nó. div
cũng là một và cho phép các khối khác.
<p>
là một thành phần cấp độ khối và (được cho là) được sử dụng để hiển thị văn bản, nó sẽ không cho phép các thành phần cấp độ khối khác bên trong nó, mà chỉ các yếu tố nội tuyến như<span>
và<strong>
.