티스토리 뷰

웹 페이지를 만드는 과정은 마치 빈 도화지에 구역을 나누고 내용을 채워 넣는 것과 같습니다. 이때 가장 기본이 되는 도구가 바로 공간 분할 태그입니다. 오늘은 HTML 레이아웃의 시작점인 <div>와 <span>의 차이점을 살펴보고, 블록(Block)과 인라인(Inline) 요소의 특징을 완벽하게 정리해 보겠습니다.
1. 블록 요소 (Block Element) vs 인라인 요소 (Inline Element)
태그의 차이를 알기 전에, 웹 브라우저가 요소를 화면에 배치하는 두 가지 핵심 방식을 이해해야 합니다.
블록 요소 (Block Level)
- 특징: 항상 새로운 라인에서 시작하며, 부모 요소의 전체 너비를 차지합니다 (100%).
- 대표 태그: <div>, <h1>~<h6>, <p>, <ul>, <li>, <section> 등
- 크기 조절: width, height, margin, padding 값을 모두 가질 수 있습니다.
인라인 요소 (Inline Level)
- 특징: 새로운 라인에서 시작하지 않으며, 딱 필요한 만큼의 너비만 차지합니다. 문장 중간에 들어갈 수 있습니다.
- 대표 태그: <span>, <a>, <img>, <strong>, <em> 등
- 크기 조절: width와 height를 지정할 수 없으며, 상하 margin 적용이 제한적입니다. (글자 흐름에 맞게 배치됩니다.)
2. <div> 태그: 구역을 나누는 큰 박스
<div>는 "Division"의 약자로, 논리적인 구역을 나누는 블록 요소입니다. 특별한 의미(Semantic)를 가지기보다는 여러 요소를 하나로 묶어 스타일을 적용하거나 레이아웃을 잡는 '컨테이너' 역할을 합니다.
예제 1: 레이아웃 구조 잡기
<!-- 블록 요소인 div는 세로로 쌓입니다 -->
<div style="background-color: #f0f0f0; padding: 20px; border: 1px solid #ccc;">
<h2>서비스 소개</h2>
<p>저희 서비스는 사용자에게 최적의 경험을 제공합니다.</p>
</div>
<div style="background-color: #e0f7fa; padding: 20px; border: 1px solid #b2ebf2; margin-top: 10px;">
<h2>문의하기</h2>
<p>궁금한 점은 언제든 연락주세요.</p>
</div>
3. <span> 태그: 텍스트 안의 작은 강조
<span>은 문장 내의 특정 부분에 스타일을 입히기 위해 사용하는 인라인 요소입니다. 텍스트의 일부를 감싸서 색상을 바꾸거나 폰트를 조절할 때 주로 사용됩니다.
예제 2: 문장 속 특정 단어 스타일링
<!-- span은 문장 흐름을 깨지 않고 필요한 만큼만 차지합니다 -->
<p>
웹 프로그래밍에서 <span style="color: red; font-weight: bold;">가독성</span>은 매우 중요합니다.
적절한 태그 사용은 <span style="background-color: yellow;">유지보수</span>를 쉽게 만듭니다.
</p>
4. 한눈에 비교하는 <div> vs <span>
구분<div> (Block)<span> (Inline)
| 기본 너비 | 부모 요소의 100% | 컨텐츠의 크기만큼 |
| 줄바꿈 | 자동으로 발생 (세로 배치) | 줄바꿈 없음 (가로 배치) |
| 용도 | 레이아웃, 큰 구역 분할 | 텍스트 스타일링, 부분 강조 |
| 포함 관계 | 다른 블록/인라인 요소 포함 가능 | 주로 인라인 요소나 텍스트만 포함 |
5. 실전 예제: 공간 분할 종합 활용
실제로 어떻게 두 태그가 조화롭게 쓰이는지 확인해 보세요.
<style>
.profile-card {
border: 2px solid #333;
padding: 15px;
width: 300px;
border-radius: 10px;
}
.highlight {
color: #007bff;
text-decoration: underline;
}
.status {
font-size: 0.8em;
color: #666;
}
</style>
<!-- 전체를 감싸는 큰 박스는 div (Block) -->
<div class="profile-card">
<h3>사용자 프로필</h3>
<p>이름: <span class="highlight">홍길동</span></p>
<p>상태: <span class="status">접속 중</span></p>
<hr>
<div>
<strong>자기소개:</strong>
안녕하세요! 저는 <span style="font-style: italic;">프론트엔드 개발자</span>를 꿈꾸는 학습자입니다.
</div>
</div>
6. 주의사항: 태그 사용의 규칙
- 중첩 규칙: 블록 요소(<div>) 안에는 다른 블록 요소와 인라인 요소(<span>)를 넣을 수 있습니다. 하지만 일반적인 경우, 인라인 요소(<span>) 안에 블록 요소(<div>)를 넣는 것은 문법적으로 권장되지 않습니다.
- 의미 있는 태그(Semantic Tag) 우선: 단순히 구역을 나눌 때는 <div>를 쓰지만, 제목은 <h1>, 목록은 <ul>, 본문은 <p>와 같이 의미에 맞는 태그를 먼저 고려하는 것이 SEO(검색 엔진 최적화)에 유리합니다.
이제 <div>로 큼직한 집의 구조를 잡고, <span>으로 집 내부의 소품들을 장식하는 법을 이해하셨나요? 이 두 가지 태그만 자유자재로 다뤄도 HTML 레이아웃의 절반은 완성된 것이나 다름없습니다.
반응형
'Frontend > HTML' 카테고리의 다른 글
| HTML5 로컬 스토리지 기초: 브라우저에 데이터를 저장하고 불러오는 간단한 방법 (0) | 2026.02.27 |
|---|---|
| SVG vs Canvas: 웹 그래픽의 두 얼굴, 차이점과 완벽 선택 가이드 (0) | 2026.02.26 |
| 웹에서 특수문자 출력하기: HTML 엔티티(Entities) 가이드 (0) | 2026.02.26 |
| <iframe> 태그 완벽 가이드: 외부 콘텐츠 삽입과 보안 설정 팁 (0) | 2026.02.26 |
| HTML5 멀티미디어 가이드: <video> 및 <audio> 태그 완벽 정복 (0) | 2026.02.25 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- HTML
- 스마트안경
- 웹기초
- MSA
- 엣지컴퓨팅
- 구글
- 멀티모달
- CSR
- sLLM
- AI
- TypeScript
- 카카오
- Rag
- SSR
- prompt engineering
- It용어
- CSS
- LLM
- on-device ai
- Nextjs
- Javascript
- 협력
- java
- HBM
- react
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
글 보관함