내가 아는 한 이것은 옳습니다.
<div>
<p>some words</p>
</div>
그러나 이것은 잘못되었습니다.
<p>
<div>some words</div>
</p>
첫 번째 는 W3C 유효성 검사기 (XHTML 1.0)를 통과 할 수 있지만 두 번째는 통과 할 수 없습니다. 아무도 두 번째 코드와 같은 코드를 작성하지 않습니다. 이유를 알고 싶어요
그리고 다른 태그의 격리 관계는 어떻습니까?
답변
허용 된 격리 관계를 찾을 수있는 권위있는 장소는 HTML 사양입니다. 예를 들어 http://www.w3.org/TR/html4/sgml/dtd.html을 참조하십시오 . 어떤 요소가 블록 요소이고 어떤 요소가 인라인인지 지정합니다. 해당 목록을 보려면 “HTML 컨텐츠 모델”로 표시된 섹션을 검색하십시오.
P 요소의 경우 P 요소에 인라인 요소 만 포함 할 수 있음을 나타내는 다음을 지정합니다.
<!ELEMENT P - O (%inline;)* -- paragraph -->
이것은 http://www.w3.org/TR/html401/struct/text.html#h-9.3.1 과 일치 합니다. P 요소는 “블록 자체 요소 (P 자체 포함)”를 포함 할 수 없습니다.
답변
즉, 여는 태그가 자동으로 요소를 닫으 므로 DOM에서 <div>
요소 를 배치 할 수 없습니다 .<p>
<div>
<p>
답변
HTML5에 따르면, 콘텐츠 모델 의 div
요소는 유동 콘텐츠
문서 및 응용 프로그램 본문에 사용되는 대부분의 요소는 흐름 내용으로 분류됩니다.
여기에는 흐름 내용 이 예상 되는 경우 에만 사용할 수p
있는 요소 가 포함됩니다.
따라서 div
요소에는 요소가 포함될 수 있습니다 p
.
문구 내용은 문서의 텍스트 및 단락 내 수준에서 해당 텍스트를 표시하는 요소입니다. 의 실행 내용 같이 분석 형태의 단락을 .
여기에는 흐름 내용 이 예상 되는 경우 에만 사용할 수div
있는 요소 가 포함되지 않습니다 .
따라서 p
요소는 요소를 포함 할 수 없습니다 div
.
요소 바로 뒤에 요소가 있을 때 요소 의 끝 태그 를 p
생략 할 수 있으므로 다음과 같습니다.p
div
<p>
<div>some words</div>
</p>
로 파싱
<p></p>
<div>some words</div>
</p>
마지막 </p>
은 오류입니다.
답변
X HTML 이후에 규칙이 변경되었으며 이제는 XML과 HTML의 규칙이 혼합되어 있으므로 두 번째 접근 방식이 잘못되고 W3C 유효성 검사기가 표준 및 규칙에 따라 올바른 것을 수락합니다.
답변
때문에 div
태그는보다 우선 순위가 p
태그를. p
반면 태그 단락 태그를 나타내는 div
태그는 문서의 태그를 나타낸다.
문서 태그에 여러 단락을 쓸 수 있지만 단락에 문서를 쓸 수는 없습니다. DOC 파일과 동일합니다.