ol / ul이 <p> 내부 또는 외부에 있어야합니까?


292

이 두 표준 중 어느 것이 표준을 준수합니까?

<p>Text text text ...
    <ol>
        <li>First element</li>
    </ol>
</p>
<p>
    Other text text ...
</p>

또는

<p>
    Text text text ...
</p>
<ol>
    <li>First element</li>
</ol>
<p>
    Other text text ...
</p>

40
@oded : 상황이 중요합니까?
동적

답변:


422

짧은 대답은 ol요소 내부에서 p요소가 합법적으로 허용되지 않는다는 것 입니다.

이유를 알아 보려면 사양으로 이동하십시오 ! HTML 사양에 익숙해지면 많은 질문과 호기심에 대답 할 것입니다. ol안에 살 수 있는지 알고 싶습니다 p. 그래서…

4.5.1 p요소 :

카테고리 : 흐름 컨텐츠 , 촉진 가능한 컨텐츠 .
컨텐츠 모델 : 컨텐츠 문구 .


4.5.5 ol요소 :

카테고리 : 흐름 내용 .
콘텐츠 모델 : 0 개 이상의 li스크립트 지원 요소.

첫 번째 부분은 말한다 p요소 만 포함 할 수 있습니다 같이 분석 내용을 (같은 "인라인"요소있는 spanstrong).

두 번째 부분은 말한다 olS는 흐름의 콘텐츠 (같은 "블록"요소 pdiv). 따라서 내부에서 사용할 수 없습니다p .


ols 및 기타 flow content는 다음과 같은 일부 다른 요소에서 사용될 수 있습니다 div.

4.5.13 div요소 :

카테고리 : 흐름 컨텐츠 , 촉진 가능한 컨텐츠 .
컨텐츠 모델 : 플로우 컨텐츠 .


9
@link : 그렇습니다. w3.org는 약간 기술적 인 부분입니다. 그럼에도 불구하고 당신이 그것들을 이해했을 때 그리고 언제 정확한지에 대해서는 의심의 여지가 없습니다.
nyson

5
@Sid가 사양과 그 용어 중 일부를 설명하는 것이 확실히 도움이된다고 생각합니다. 그가 조금 더 나아가면 그것은 큰 대답이 될 것입니다. 그는 또한 질문에 명시 적으로 대답 할 수 있습니다 :). 나는 그것에 대한 편집을 추가했다.
studgeek

1
읽기 끔찍한? 그렇게 생각하지 말고로 가십시오 4.4.1 The p element. 저자는 심지어 그것에 대해 이야기 fantastic sentences하거나
Jaime Hablutzel

1
@dynamic 문서를 읽기 쉽도록 항상 MDN의 HTML 참조 로 이동합니다 .
Bonk

1
@AaronLS 종류! 브라우저가 HTML을 반환하면 (예 : 개발자 도구 또는에서 .innerHTML) 요소 트리에서 다시 생성됩니다. 따라서 Chrome은 원본 HTML에서 유효한 트리를 만든 다음 해당 트리에서 새 HTML을 생성하는 것만 큼 HTML을 조정하지 않습니다.
s4y

40

두번째. 첫 번째는 유효하지 않습니다.

  • 단락은 목록을 포함 할 수 없습니다.
  • 단락이 단일 목록 항목 내에 완전히 포함되어 있지 않으면 목록에 단락을 포함 할 수 없습니다.

브라우저는 다음과 같이 처리합니다.

<p>tetxtextextete 
<!-- Start of paragraph -->
<ol>
<!-- Start of ordered list. Paragraphs cannot contain lists. Insert </p> -->
<li>first element</li></ol>
<!-- A list item element. End of list -->
</p>
<!-- End of paragraph, but not inside paragraph, discard this tag to recover from the error -->
<p>other textetxet</p>
<!-- Another paragraph -->


7

실제로는 내부에 인라인 요소 만 넣어야 p하므로 ol외부에서는 더 좋습니다.


2
이것은 마음에 들지 않는 @David Dorward의 답장과 같은 답장입니다.
ceejayoz

5
<p>tetxetextex</p>
<ol><li>first element</li></ol>
<p>other textetxeettx</p>

두 때문에 <p><ol>소자 블록으로 표현되어있다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.