웹 페이지를 만들 때, 콘텐츠를 어떻게 배치하고 스타일링할지 결정하는 것은 매우 중요합니다. 이때 인라인(Inline), 인라인블록(Inline-Block), 블록(Block)이라는 세 가지 디스플레이 속성을 이해하는 것이 핵심입니다. 이 글에서는 이 세 가지 속성의 차이점을 쉽게 설명하고, 예시 코드를 통해 실제로 어떻게 사용되는지 알아보겠습니다.
display - inline, inline-block, block 개념
display - inline, inline-block, block 개념
위의 목차를 클릭하면 해당 글로 자동 이동 합니다.
블록(Block) 요소
블록 요소는 웹 페이지에서 전체 너비를 차지하는 요소입니다. 이 요소는 기본적으로 줄 바꿈이 되며, 다른 요소들과 수직으로 쌓이는 특징이 있습니다. 블록 요소는 <div>, <p>, <h1>~<h6>, <ul>, <li> 등이 대표적입니다. 아래는 블록요소 list 입니다.
블록 요소의 특징
- 줄 바꿈: 블록 요소는 항상 새로운 줄에서 시작합니다.
- 너비와 높이: 너비(width)와 높이(height)를 지정할 수 있습니다.
- 패딩, 테두리, 마진: 상하좌우 모든 방향에 패딩, 테두리, 마진을 적용할 수 있습니다.
- 배경색: 배경색을 지정하면 콘텐츠 영역과 패딩 영역에 적용됩니다.
일반 블록 요소
- <address> : 주소 정보를 나타냄
- <article> : 독립적인 콘텐츠 섹션
- <aside> : 부가적인 내용 (사이드바 등)
- <blockquote> : 인용문
- <canvas> : 그래픽을 위한 캔버스 요소
- <dd> : 정의 목록에서 설명 부분
- <div> : 문서의 구획을 나누는 일반적인 블록 요소
- <dl> : 정의 목록 (description list)
- <dt> : 정의 목록에서 용어 부분
- <fieldset> : 폼 요소 그룹화
- <figcaption> : <figure> 요소에 대한 캡션
- <figure> : 이미지, 도표, 코드 등의 독립적 콘텐츠 그룹
- <footer> : 페이지나 섹션의 하단 부분
- <form> : 사용자 입력을 위한 폼
- <h1> ~ <h6> : 제목 요소 (제목 크기별)
- <header> : 섹션 또는 문서의 머리말
- <hr> : 주제 변경을 나타내는 수평선
- <li> : 목록 항목 (unordered, ordered list 둘 다 포함)
- <main> : 문서의 주요 콘텐츠
- <nav> : 내비게이션 링크 그룹
- <noscript> : 스크립트 미지원 환경에서 표시할 내용
- <ol> : 순서가 있는 목록 (ordered list)
- <p> : 문단 (paragraph)
- <pre> : 공백과 줄 바꿈을 유지하는 서식 있는 텍스트
- <section> : 문서의 논리적 구획
- <table> : 표 (테이블)
- <ul> : 순서 없는 목록 (unordered list)
테이블 관련 블록 요소
- <caption> : 테이블의 제목
- <colgroup> : <col> 요소를 그룹화
- <tbody> : 테이블 본문 부분
- <tfoot> : 테이블 푸터 부분
- <thead> : 테이블 헤더 부분
- <tr> : 테이블 행 (row)
폼 관련 블록 요소
- <legend> : <fieldset> 요소의 제목
- <output> : 계산 또는 사용자 작업의 결과 표시
블록 요소 예시
<div class="block">display: block;</div>
<div class="block">display: block;</div>
<div class="block">display: block;</div>
인라인(Inline) 요소
인라인 요소는 콘텐츠 크기만큼만 공간을 차지하는 요소입니다. 줄 바꿈 없이 한 줄 안에 여러 개의 인라인 요소가 들어갈 수 있습니다. 인라인 요소는 <span>, <a>, <em>, <strong> 등이 대표적입니다. 아래는 인라인 요소 list 입니다.
인라인 요소의 특징
- 줄 바꿈 없음: 인라인 요소는 줄 바꿈 없이 한 줄 안에 배치됩니다.
- 너비와 높이: 너비와 높이를 지정할 수 없습니다. 콘텐츠 크기에 따라 자동으로 조정됩니다.
- 패딩과 마진: 좌우 패딩과 마진만 적용됩니다. 상하 패딩과 마진은 적용되지 않습니다.
- 배경색: 배경색을 지정하면 콘텐츠 영역과 좌우 패딩 영역에 적용됩니다.
텍스트 관련 인라인 요소
- <a> : 하이퍼링크
- <abbr> : 약어 (마우스 호버 시 전체 의미 표시 가능)
- <b> : 굵은 텍스트 (의미 없음)
- <bdi> : 특정 텍스트를 현재 방향과 독립적으로 렌더링
- <bdo> : 텍스트 방향 지정 (dir="rtl" 등)
- <br> : 줄 바꿈 (self-closing)
- <cite> : 인용 제목 (책, 논문, 영화 제목 등)
- <code> : 코드 텍스트 (기본적으로 모노스페이스 폰트 사용)
- <data> : 기계가 읽을 수 있는 데이터 값 제공
- <dfn> : 정의되는 용어 강조
- <em> : 강조 텍스트 (기본적으로 이탤릭)
- <i> : 기울임 텍스트 (의미 없음, 단순 스타일)
- <kbd> : 키보드 입력 표시
- <mark> : 하이라이트된 텍스트
- <q> : 짧은 인라인 인용문
- <rp> : 루비 문자(발음 가이드)의 대체 텍스트
- <rt> : 루비 문자(발음 가이드)
- <ruby> : 일본어 루비 문자(발음 가이드) 래퍼
- <s> : 취소선 (삭제되었거나 더 이상 유효하지 않은 텍스트)
- <samp> : 샘플 출력 (컴퓨터 시스템에서 출력된 텍스트)
- <small> : 작은 텍스트
- <span> : 스타일링을 위한 인라인 컨테이너
- <strong> : 중요한 텍스트 (기본적으로 굵게)
- <sub> : 아래첨자 텍스트
- <sup> : 위첨자 텍스트
- <time> : 날짜 또는 시간 정보
- <u> : 밑줄 (의미 없음, 스타일 용도)
- <var> : 변수 텍스트 (수학 또는 코드 변수)
- <wbr> : 줄 바꿈 가능 위치 지정 (강제 개행 X)
미디어 및 인터랙티브 관련 인라인 요소
- <audio> (일부 속성 설정 시) : 오디오 삽입
- <img> : 이미지 삽입 (self-closing)
- <map> : 이미지 맵
- <area> : 이미지 맵의 클릭 가능한 영역 (self-closing)
- <object> : 외부 객체 포함 (예: 플래시, PDF, Java 애플릿 등)
- <param> : <object> 요소의 매개변수 설정 (self-closing)
- <source> : <audio> 및 <video>의 소스 파일 지정 (self-closing)
- <track> : <video> 및 <audio>의 자막 설정 (self-closing)
- <video> : 비디오 삽입
폼(form) 관련 인라인 요소
- <button> : 클릭 가능한 버튼
- <input> : 사용자 입력 필드 (self-closing)
- <label> : 입력 필드와 연결된 텍스트 라벨
- <select> : 드롭다운 리스트
- <option> : <select> 요소의 옵션 항목
- <optgroup> : <option> 그룹화
- <textarea> : 여러 줄 입력 필드
- <output> : 계산된 결과 표시
추가 예외
- <script>, <style> 은 문맥에 따라 인라인처럼 동작할 수도 있지만, 일반적으로 별도의 블록 요소로 취급된다.
- <svg> 내부의 일부 태그 (<tspan>, <text>, <use> 등)도 인라인 요소처럼 동작.
- <iframe> 는 독립적인 문서를 포함하지만 기본적으로 인라인 요소로 취급됨.
인라인 요소 예시
<span class="inline">display:inline;</span>
<span class="inline">display:inline;</span>
<span class="inline">display:inline;</span>
<span class="inline">display:inline;</span>
인라인블록(Inline-Block) 요소
인라인블록 요소는 인라인 요소와 블록 요소의 특징을 모두 가진 요소입니다. 줄 바꿈 없이 한 줄 안에 배치되지만, 너비와 높이를 지정할 수 있습니다. 인라인블록 요소는 <button>, <input>, <img> 등이 대표적입니다. 아래는 인라인블록요소 list 입니다.
인라인블록 요소의 특징
- 줄 바꿈 없음: 인라인블록 요소는 줄 바꿈 없이 한 줄 안에 배치됩니다.
- 너비와 높이: 너비와 높이를 지정할 수 있습니다.
- 패딩, 테두리, 마진: 상하좌우 모든 방향에 패딩, 테두리, 마진을 적용할 수 있습니다.
- 배경색: 배경색을 지정하면 콘텐츠 영역과 패딩 영역에 적용됩니다.
대표적인 인라인 블록 요소
- <button> : 클릭 가능한 버튼
- <input> : 사용자 입력 필드
- <img> : 이미지 삽입
추가적인 인라인 블록 요소
- <select> : 드롭다운 리스트
- <textarea> : 여러 줄 입력 필드
- <meter> : 미터 게이지(진행률 표시)
- <progress> : 진행 상태 표시 (로딩 바 등)
- <video> : 비디오 삽입 (기본적으로 display: inline-block;)
- <audio> : 오디오 삽입 (일부 브라우저에서 controls 속성을 추가하면 inline-block으로 변경됨)
- <canvas> : 그래픽을 그릴 수 있는 캔버스 요소
- <iframe> : 다른 웹 페이지 포함 (기본적으로 inline-block)
- <object> : 외부 객체(플래시, PDF 등) 포함
- <embed> : 외부 콘텐츠 포함 (예: 플래시, 오디오, 비디오 등)
- <map> : 이미지 맵
- <svg> : 벡터 그래픽 삽입
인라인블록 요소 예시
<div class="inline-block">display:inline-block;</div>
<div class="inline-block">display:inline-block;</div>
<div class="inline-block">display:inline-block;</div>
블록, 인라인, 인라인블록의 차이점
특징 | 블록 요소 | 인라인 요소 | 인라인 블록 요소 |
줄 바꿈 | 항상 새로운 줄에서 시작 | 줄 바꿈 없이 한 줄 안에 배치 | 줄 바꿈 없이 한 줄 안에 배치 |
너비와 높이 | 지정 가능 | 지정 불가능 | 지정 가능 |
패딩, 테두리, 마진 | 상하좌우 모두 적용 | 좌우만 적용 | 상하좌우 모두 적용 |
배경색 | 콘텐츠와 패딩 영역에 적용 | 콘텐츠와 좌우 패딩 영역에 적용 | 콘텐츠와 패딩 영역에 적용 |
예시 HTML 코드
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="블록, 인라인, 인라인블록 요소의 차이점을 쉽게 이해할 수 있는 예시입니다.">
<title>블록 vs 인라인 vs 인라인블록</title>
<style>
/* 블록 요소 스타일 */
.block {
display: block;
width: 200px;
padding: 20px;
margin: 5px;
background-color: #f8d7da;
border: 2px solid red;
}
/* 인라인 요소 스타일 */
.inline {
display: inline;
padding: 10px;
margin: 5px;
background-color: #f8d7da;
border: 2px solid red;
}
/* 인라인블록 요소 스타일 */
.inline-block {
display: inline-block;
width: 100px;
padding: 20px;
margin: 5px;
background-color: #f8d7da;
border: 2px solid red;
}
</style>
</head>
<body>
<h1>블록, 인라인, 인라인블록의 차이점</h1>
<!-- 블록 요소 예시 -->
<h2>display: block;</h2>
<div class="block">display: block;</div>
<div class="block">display: block;</div>
<div class="block">display: block;</div>
<!-- 인라인 요소 예시 -->
<h2>display: inline;</h2>
<span class="inline">display:inline;</span>
<span class="inline">display:inline;</span>
<span class="inline">display:inline;</span>
<span class="inline">display:inline;</span>
<!-- 인라인블록 요소 예시 -->
<h2>display: inline-block;</h2>
<div class="inline-block">display:inline-block;</div>
<div class="inline-block">display:inline-block;</div>
<div class="inline-block">display:inline-block;</div>
<!-- 추가 설명 -->
<p>
블록 요소는 전체 너비를 차지하고, 인라인 요소는 콘텐츠 크기만큼만 차지합니다. 인라인블록 요소는 줄 바꿈 없이 한 줄 안에 여러 개가 들어갈 수 있으며, 너비와 높이를 지정할 수 있습니다.
</p>
</body>
</html>
예시 HTML 결과
결론
블록, 인라인, 인라인블록 요소는 웹 디자인의 기본 개념입니다. 블록 요소는 전체 너비를 차지하며 줄 바꿈이 되고, 인라인 요소는 콘텐츠 크기만큼만 차지하며 줄 바꿈 없이 배치됩니다. 인라인블록 요소는 줄 바꿈 없이 한 줄 안에 여러 개가 들어갈 수 있으며, 너비와 높이를 지정할 수 있습니다.
'web 언어 > HTML5 & CSS & Javascript' 카테고리의 다른 글
JS - 자바스크립트 배열(Array) 모든 문법 사용법 (0) | 2025.03.21 |
---|---|
CSS - 단위 : 길이와 폰트 크기를 이해하자 (in, cm, mm, pt, pc, em, ex, px) (0) | 2025.03.20 |
HTML - Box 모델 (블록박스, 인라인박스) 웹디자인 기본 개념 (0) | 2025.03.20 |
CSS - 스타일이 잘 안 먹힐 때 구체성 때문이다 (0) | 2025.03.19 |
CSS - 속성 선택자(Selector) 7가지 사용방법 (0) | 2025.03.19 |