css <div>코드 질문입니다.

조회수 539회

css에서 그리드만들때 div로 감싸주는데, ol같은 코드는 안해줘도 되는 이유가 궁금합니다.

예를 들어서!

<div>
    <ol></ol>
    <div><h1></h1></div>
</div>
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • HTML 고급 과정으로 들어오신 것을 환영합니다. 일단 질문 자체에만 답을 드리자면 ol 태그는 기본적으로 블록 요소라서 div로 쌀 필요가 없는 겁니다. 근데 애초에 <div> 태그는 뭐 하는 태그일까요?

    <div> 요소는 "순수" 컨테이너로서 아무것도 표현하지 않습니다. 대신 다른 요소 여럿을 묶어 classid 속성으로 꾸미기 쉽도록 돕거나, 문서의 특정 구역이 다른 언어임을 표시(lang 속성 사용)하는 등의 용도로 사용할 수 있습니다. (중략) <div> 요소는 의미를 가진 다른 요소(<article>, <nav> 등)가 적절하지 않을 때만 사용해야 합니다.

    출처

    그말인즉 div는 그야말로 칸(block)의 구획("division")을 짓는 -- 칸을 분리하거나 합쳐주는 -- 태그라는 건데요. h1~h6, p, ol 등은 기본적으로 블록 요소지만, 모종의 이유로 어떤 놈들이 블록 요소가 아니게 되어 있다거나, 여러 블록 요소들을 묶어서 하나의 블록으로 처리될 필요가 있다거나 할 때 갖다쓰는게 바로 div인 겁니다.

    주신 마크업의 사례를 보자면, 아마도 <h1> 태그는 기본 CSS인 display: block;이 아닌 다른 디스플레이 유형이 정의돼 있는 것 같습니다. 이 상황에서 <h1> 아래에 예컨대 <span> 텍스트가 붙으면, 그 텍스트는 h1 대제목의 아래에 붙지 않고 오른쪽에 줄줄이 붙어서 나오게 됩니다. 그걸 방지하기 위해서 <h1>을 굳이 <div>로 다시 싼 것이 아닌가 싶네요.

    데모에서 보기

    여기까지가 제 얕은 이해인데 혹시 틀린 데가 있다면 정정해 주시면 감사하겠습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)