code

내부 블록 수준 요소 중첩

codestyles 2020. 11. 24. 08:01
반응형

내부 블록 수준 요소 중첩

태그… 옳고 그름?


태그 <div>내부 에 중첩 또는 다른 블록 수준 요소 가 구문 상 및 의미 상 올바른가요? <p>HTML4 Transitional DTD에 대해 이야기하고 있습니다.

그렇지 않다면 대신 사용해도 괜찮 <span style="display: block">습니까?


구문 적으로 div내부 a p는 HTML의 모든 표준에서 유효하지 않습니다. 또한, HTML 구문 분석기를 준수하는 경우 여는 태그가 자동으로 요소를 닫기 때문에 DOM <div>내부에 요소 를 배치 할 수 없습니다 .<p><div><p>

의미 상 올바른 선택은 마크 업하는 콘텐츠에 따라 다릅니다. 올바른 의미 마크 업을 결정할 수 있도록 충분한 정보를 제공하려면 최소한 전체 단락 샘플과 해당 단락을 둘러싼 내용을 보여 주어야합니다.

그러나 <div>둘 다 <span>의미론이없고 CSS는 <p>태그 의 내용이 진정으로 단락을 형성하고 <span style="display: block">원하는 표현 효과를 얻을 수 있다고 확신하는 경우 CSS를 결코 변경할 수 없습니다. 유효한 HTML이며 완전히 적절한 솔루션이 될 것입니다.


아니요, 단락 요소는 다른 블록 요소를 포함 할 수 없습니다.

참고

단락 태그는 텍스트 블록을위한 것입니다. 요소가 텍스트의 일부 (블록 요소가 아님)이면 의미 론적으로 정확하고 그렇지 않으면 그렇지 않습니다. 스팬 태그 display:block는 여전히 블록 요소입니다.


W3C 마크 업 유효성 검사기를 사용하여 직접 확인할 수 있으므로 구문 상 잘못되었습니다 .

의미 적으로나 실질적으로 a) 매우 자연스럽고 b) 모든 브라우저가 올바르게 처리한다는 점에서 "좋다"고 말할 것입니다 (실제로 이것은 매일 직면해야하는 가장 쉬운 문제 중 하나입니다).

HTML이 사용자 입력에 의해 생성되는 경우 (예 : 방문자가 댓글을 남길 수있는 HTML 편집기 위젯) "잘못된"경우에도 간단히 그대로 둡니다.

그렇지 않으면 마크 업을 약간 변경할 수 있습니다. 개인적으로 나는 함께 갈 것입니다

<div class="para">
    <div>Some content</div>
</div>

.paraCSS로 적절한 여백을 제공 합니다.


FWIW : 단락 태그로 묶인 단락이 있습니다. 그 안에 div에 display : inline이있는 div를 넣었습니다. 그러나 여전히 div를 블록 요소로 취급하고 단락을 닫아 단락 간격이있는 새 줄을 만듭니다.

단락 태그 내의 모든 블록 요소는 CSS에서 블록 요소가 인라인으로 표시되는 경우에도 단락을 강제로 닫는 것으로 보입니다.


문맥이 없어도 외부 태그가 실제로 단락 인 한 괜찮아 보입니다. div가 상단 내비게이션 바와 같은 것이라면 그다지 많지는 않지만 오른쪽으로 떠 다니는 이미지 및 캡션의 컨테이너라면 문제가 없습니다.


이 게시물은 이것에 대해 보여줍니다. 표준 브라우저 동작 인 것 같습니다.

http://blog.programmingsolution.net/html/html-div-tag-inside-html-p-paragraph-tag-does-not-work-correctly/

참고 URL : https://stackoverflow.com/questions/4291467/nesting-block-level-elements-inside-the-p-tag-right-or-wrong

반응형