HTML Div와 Span 차이점 분석: 도시락 비유로 배우는 블록 요소와 인라인 요소

오늘 학원 수업 시간에 강사님이 그러시더군요. “여러분, 홈페이지는 사실 거대한 도시락 통입니다.” 처음엔 다들 무슨 소린가 해서 눈만 껌뻑였는데, 수업이 끝날 때쯤엔 모두 고개를 끄덕였습니다. 저도 예전에 혼자 독학할 때, 글자 색 하나 바꾸려다 레이아웃이 와장창 깨져서 당황했던 적이 있거든요.

그때 제가 몰랐던 게 바로 오늘 배운 ‘블록(Block)’‘인라인(Inline)’의 차이였습니다. 오늘 이 글을 다 읽으시면, 다시는 <div><span>을 헷갈려서 모니터를 부여잡는 일은 없으실 겁니다. 자, 복습 들어갑니다!

HTML 블록 요소(Div)와 인라인 요소(Span)의 레이아웃 배치 차이를 보여주는 비교 다이어그램
▲ 실제로 브라우저가 읽어들이는 코드의 모습입니다. 이 외계어 같은 글자들이 우리가 보는 멋진 웹사이트가 되죠.

1. Div 태그: 욕심쟁이 도시락 통 (Block Element)

먼저 <div>입니다. 이 녀석은 성격이 아주 ‘욕심쟁이’입니다. 우리가 도시락을 쌀 때, 밥을 담는 칸이나 국을 담는 칸을 생각해보세요. 그 칸은 옆에 아무리 공간이 남아도 혼자서 한 줄을 다 차지하죠?

이걸 전문 용어로 블록 요소(Block Element)라고 합니다.

  • 특징: 화면 가로 너비(Width)를 100% 차지합니다.
  • 행동: “내 옆에 아무도 오지 마!”라며 자동으로 줄바꿈을 해버립니다.
  • 용도: 웹사이트의 레이아웃(구획)을 나눌 때 주로 씁니다. (헤더, 본문, 푸터 등)

“수업 시간에 제가 <div> 두 개를 나란히 놓으려고 애쓰니까 강사님이 웃으시더군요. ‘그건 블록이라서 기본적으론 불가능해. CSS라는 마법을 부려야만 옆으로 와.’ 라고요. Div는 태생이 독불장군이라는 걸 기억해야 합니다.”

2. Span 태그: 소심한 반찬들 (Inline Element)

반면에 <span>은 아주 ‘겸손하고 소심’합니다. 도시락 밥 위에 올라가는 ‘콩자반’이나 ‘깨’를 떠올려보세요. 콩자반을 올려놓는다고 해서 밥 전체가 바뀌거나 줄이 바뀌지 않죠? 그냥 밥 알갱이들 사이에 쏙 들어갑니다.

이것이 바로 인라인 요소(Inline Element)입니다.

  • 특징: 딱 자기 내용물(글자) 크기만큼만 자리를 차지합니다.
  • 행동: 줄바꿈이 일어나지 않고, 글자들 사이에 자연스럽게 흐릅니다.
  • 용도: 문장 중간에 특정 단어만 색상/굵기를 바꿀 때 씁니다.

3. 한눈에 보는 비교 (오늘의 핵심!)

오늘 배운 내용을 표로 정리해봤습니다. 나중에 헷갈리면 이 부분만 다시 보세요.

구분Div (Block)Span (Inline)
비유도시락 통 (용기)반찬, 밥알 (내용물)
영역한 줄 전체 차지콘텐츠 크기만큼만
줄바꿈무조건 일어남일어나지 않음

💡 코드캠의 복습 TIP

절대 하지 말아야 할 실수가 있습니다. 바로 <span> 안에 <div>를 넣는 것입니다. 작은 콩자반 안에 거대한 도시락 통을 욱여넣는 꼴이거든요. 문법적으로 틀린 건 아니지만(HTML5 기준), 브라우저가 렌더링할 때 꼬일 확률이 높습니다. 항상 큰 박스(Div) 안에 작은 요소(Span)를 넣는 순서를 기억하세요!

Div와 Span으로 요소를 만들었다면, 이제 원하는 위치에 배치할 차례입니다. 초보자가 가장 많이 헷갈리는 정렬 방법은 Flexbox의 Justify와 Align 구분법 글에서 쉽게 해결할 수 있습니다.


마치며

정리하자면, 레이아웃을 잡고 덩어리를 나눌 때는 ‘도시락 통(Div)’을 꺼내고, 텍스트의 일부분만 예쁘게 꾸미고 싶을 때는 ‘반찬(Span)’을 쓴다고 생각하면 됩니다.

오늘 복습은 여기까지입니다. 이 개념만 확실히 잡고 있어도 다음 시간에 배울 ‘박스 모델(Box Model)’이 훨씬 쉬워질 거예요. 집에 가서 꼭 한 번 코드로 쳐보시길 바랍니다!

혹시 설명 중에 이해가 안 가거나, 학원 진도 나가면서 막히는 부분이 있나요? 댓글로 남겨주시면 제 복습 노트에서 답을 찾아 알려드릴게요!

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다