🐨CoalaCoding
Docs▾
JavaScriptReactHTML & CSSBackendAI & LLMDev ToolsCreative
B반1
👾숏츠
🙉B반2
게시판
🐨CoalaCoding

개발자를 위한 한국어 웹 기술 문서

문서

  • JavaScript
  • React
  • HTML & CSS
  • Backend
  • AI & LLM
  • Dev Tools
  • Creative

커뮤니티

  • 게시판
  • 예제 모음

기타

  • 관리자

정책

  • 소개
  • 개인정보처리방침
  • 이용약관
  • 연락처
© 2026 CoalaCoding. All rights reserved.
  • 1. aboutweb
  • 2. 개발환경설정
  • 3. 문서구조
  • 4. 문단과텍스트요소
  • 5. 링크요소
  • 6. 미디어요소
  • 7. 테이블요소
  • 8. 폼요소
  • 9. dialog
  • 10. 웹접근성
  1. 홈
  2. 문서
  3. HTML & CSS
  4. HTML
  5. 6. 미디어요소

6. 미디어요소

`div`/`span`, 시맨틱 구조 태그, `audio`/`video`, `iframe`, `details`·popover 등 모던 미디어·디스클로저 요소를 정리한다.

Info: 📢 예제파일

1. div

Info: 💡 🔗div

ex1-34.html

교재83p

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>그룹 요소</title>
    <style>
        header{
            width: 300px;           
            margin: 0 auto;
            border: 1px solid #000;
        }
        section{
            width: 300px;            
            margin: 0 auto;
            border: 1px solid #333;
        }
        footer{
            width: 300px;           
            margin: 0 auto;
            border: 1px solid #999;
        }        
    </style>
</head>
<body>
    <header>헤더</header>
    <section>본문</section>
    <footer>푸터</footer>    
</body>
</html>

↓ div로 그룹화

ex1-35.html
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>그룹 요소</title>
    <style>
        #wrap{
            width: 300px;
            margin: 0 auto;
            border: 1px solid #000;
        }
    </style>
</head>
<body>
    **<div id="wrap">**
        <header>헤더</header>
        <section>본문</section>
        <footer>푸터</footer>
    **</div>    **
</body>
</html>

2. span

Info: 💡 🖇️span 작은div

ex1-36.html
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>그룹 요소</title>
    <style>
        .s1{
            background-color: #ccc;
        }
        .s2{
            color: #ff6600;
        }
    </style>    
</head>
<body>
    <span class="s1"><span class="s2">웹표준</span>과 <span class="s2">웹접근성</span></span>
    <div>
        <a href="#">
            <span><img src="images/whitestar.jpg" alt></span>
            <span class="s2">공기정화식물 화이트스타</span>
        </a>    
    </div>   
</body>
</html>

3.시맨틱 구조요소

Info: 💡 문서의 구조영역을 표시

개발자와 웹브라우저나 장치 등 웹 페이지를 이용하는 모든 대상에 콘텐츠의 의미를 전달

https://developer.mozilla.org/ko/docs/Glossary/Semantics#html_시맨틱

header헤더영역제목(사이트로고),내비게이션,검색
section맥락이 같은 요소를 주제별로 그룹핑섹션주제에 대한 제목<h2>~<h6>을 포함하는 것이 좋다
footer푸터영역저작권정보, 회사정보
nav메인메뉴
article독립적으로 배포가능한 게시물
aside광고영역문서의 주요 내용과 간접적으로만 연관된 부분을 나타냅니다. 주로 사이드바 혹은 콜아웃 박스
figure, figcaption삽화와 그림의 설명

ex1-37.html
<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="UTF-8" />
		<title>구조 요소</title>
	</head>
	<body>
		<header>
			<h1><a href="#">반응형웹</a></h1>
			<nav>
				<ul>
					<li><a href="#">MENU01</a></li>
					<li><a href="#">MENU02</a></li>
					<li><a href="#">MENU03</a></li>
					<li><a href="#">MENU04</a></li>
					<li><a href="#">MENU05</a></li>
				</ul>
			</nav>
		</header>
		<div id="container">
			<section>
				<h2>콘텐츠 그룹01</h2>
			</section>
			<section>
				<h2>콘텐츠 그룹02</h2>
			</section>
			<article>
				<h2>주요기사</h2>
			</article>
			<aside>광고</aside>
		</div>
		<footer>
			<address>경기도 부천시 오정구 삼정동 000)674-5685 email@naver.com</address>
			<p>COPYRIGHT © All rights reserved.</p>
		</footer>
	</body>
</html>

ex1-37-re.html
<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="UTF-8" />
		<title>구조 요소</title>
		<link rel="stylesheet" href="style.css">
	</head>
	<body>
		<header>
			<h1><a href="#">반응형웹</a></h1>
			<nav>
				<ul>
					<li><a href="#">MENU01</a></li>
					<li><a href="#">MENU02</a></li>
					<li><a href="#">MENU03</a></li>
					<li><a href="#">MENU04</a></li>
					<li><a href="#">MENU05</a></li>
				</ul>
			</nav>
		</header>
		<div id="container">
			<section>
				<h2>콘텐츠 그룹01</h2>
			</section>
			<section>
				<h2>콘텐츠 그룹02</h2>
			</section>
**			<div>
				<article>
					<h2>주요기사</h2>
				</article>
				<aside>광고</aside>
			</div>**
		</div>
		<footer>
			<address>경기도 부천시 오정구 삼정동 000)674-5685 email@naver.com</address>
			<p>COPYRIGHT © All rights reserved.</p>
		</footer>
	</body>
</html>
**/* style.css */
**
* {
	margin: 0;
	padding: 0;
}
body > * {
	width: 900px;
	padding: 20px;
	background: #89c03d;
	text-align: center;
  margin:auto;
}
header {
	display: flex;
	height: 200px;
	justify-content: space-between;
	align-items: flex-end;
}
h1 {
	width: 200px;
	height: 200px;
	background: #bedb96;
	line-height: 200px;
}
ul {
	display: flex;
	list-style: none;
	background: #bedb96;
	width: 600px;
	justify-content: center;
}
li {
	width: 70px;
	height: 60px;
	line-height: 60px;
}
#container {
	display: flex;
	justify-content: space-between;
}
section {
	background: #bedb96;
	width: 300px;
	height: 400px;
	line-height: 400px;
}
section + div {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
section + div * {
	width: 200px;
	height: 190px;
	background: #bedb96;
}

footer > * {
	background: #bedb96;
	width: 600px;
	padding: 5px;
	margin-left: 100px;
	margin-top: 5px;
}
html

css

4. audio

Info: 👁️‍🗨️ 🔗MDN

브라우저별 지원하는 코덱이 상이하니 호환성을 체크하고 추가한다 ** 코덱별 호환성 체크 :** ** **https://caniuse.com/?search=mp3 https://developer.mozilla.org/ko/docs/Web/Media/Formats/Containers

오디오 코덱이란?

오디오코덱: 오디오의 디지털 데이터스트림을 부호화,복호화 하는 컴퓨터 프로그램/장치 부호화→컴퓨터로 미디어파일 생성할때 데이터 코드 압축하는거 복호화→압축푸는거

audio 에 사용할수 있는 속성

속성/특성값내용
src경로재생할 음원 파일의 경로 설정(mp3, wav, ogg 파일 등)
autoplayautoplay자동재생 (접근성위배) 🗨접근성관련사회적이슈
looploop반복재생
controlscontrols컨트롤바
mutedmuted음소거
ex1-38.html
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>오디오</title>
</head>
<body>
    <audio controls>
        <source src="media/applause.mp3" type="audio/mpeg">
        <source src="media/applause.wav" type="audio/wav">
    </audio>
</body>
</html>

5. video 요소로 동영상 삽입

Info: 👁️‍🗨️ 🔗video 접근성 고려하기

속성값내용
src경로재생할 음원 파일의 경로 설정(mp3, wav, ogg 파일 등)
autoplayautoplay자동재생
looploop반복재생
controlscontrols컨트롤바
mutedmuted음소거
playsinlineplaysinline아이폰 자동재생
ex1-39.html
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>비디오</title>
</head>
<body>
    <video controls poster="images/sun.jpg" width="800" height="450" preload="metadata" playsinline>
        <source src="media/sunrise.mp4" type="video/mp4">
        <source src="media/sunrise.webm" type="video/webm">
    </video>
</body>
</html>

1. 자막넣기

Info: 💡 포스터와 자막을 넣어보아요

🔗MDN <track>태그- 동영상 화면에 자막 추가하기

  • 웹 표준 마크업인 HTML5에서는 비디오 콘텐츠를 웹 페이지에 삽입할 때 청각 장애인을 위한 자막을 표시하는 것이 기본입니다
<track kind="자막의 종류" src="파일 경로" srclang="사용한 언어" lable="제목" default>
자막파일

파일은 media 폴더에 저장 subtitle_ko.vtt

WEBVTT FILE

1
00:00:00.000 --> 00:00:02.000
망고 안녕~

2
00:00:02.000 --> 00:00:04.000
망고 친구들~

3
00:00:05.000 --> 00:00:06.000
공을 던져줘요~

4
00:00:07.000 --> 00:01:00.000
망고 The End

subtitle_en.vtt

WEBVTT FILE

1
00:00:00.000 --> 00:00:02.000
mango Hello~

2
00:00:02.000 --> 00:00:04.000
manggo Friend~

3
00:00:05.000 --> 00:00:06.000
mango The End
ex1-39-1.html

서버에 올려야 실행됨

<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="UTF-8" />
		<title>Document</title>
	</head>
	<body>
		<h1>동영상 썸네일과 자막넣기</h1>
		<video width="400" controls poster="images/mango.jpg">
			<source src="media/mango.mp4" />
			<track src="media/subtitle_en.vtt" kind="subtitles" srclang="en" label="english" />
			<track src="media/subtitle_ko.vtt" kind="subtitles" srclang="ko" label="korean" default />
		</video>
	</body>
</html>

6. 아이프레임

Info: 💡 html 문서안에 다른 html 문서를 넣을수 있다.

속성값의미
src경로불러올 페이지의 URL
title텍스트iframe 의 용도 (접근성 필수)
width, height숫자iframe 크기
loadinglazy / eager화면에 들어올 때 로드(lazy) — 성능에 유리
sandbox(값 없음) / 토큰 조합외부 콘텐츠 격리 (스크립트·폼 차단). 보안 권장
referrerpolicyno-referrer 등리퍼러 노출 제어
allow토큰카메라/마이크/결제 등 권한

Info: ⚠️ scrolling 속성은 HTML5 에서 deprecated 되었습니다. 스크롤은 CSS 의 overflow 로 제어하세요.

Info: 💡 iframe 은 접근성·SEO 에 취약하므로 가급적 자제. 외부 콘텐츠 임베드 시에는 title, loading="lazy", sandbox 를 함께 적는 것이 모던 권장.

ex1-40.html
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>iframe</title>
</head>
<body>    
    <h1>html5 구조 요소들</h1>
    <p>&lt;header&gt;, &lt;section&gt;, &lt;footer&gt;, &lt;nav&gt;, &lt;article&gt;, &lt;aside&gt; </p>
    <p><strong>html5 구조 요소를 이용한 마크업 예시</strong></p>
    <div>
        <iframe src="ex1-37.html" title="반응형웹" width="500" height="500" loading="lazy"></iframe>
    </div>    
</body>
</html>

7. 인라인프레임에서 하이퍼링크 연결

ex1-40-1.html
<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="UTF-8" />
		<title>iframe</title>
	</head>
	<body>
		<h1>html5 구조 요소들</h1>
		<p>&lt;header&gt;, &lt;section&gt;, &lt;footer&gt;, &lt;nav&gt;, &lt;article&gt;, &lt;aside&gt;</p>
    <nav>
      <ul>
        <li><a href="ex1-39-1.html" target="mainframe">link</a></li>
        <li><a href="ex1-29.html" target="mainframe">폼몽땅</a></li>
        <li><a href="ex1-12.html" target="mainframe">이미지맵</a></li>
        <li><a href="ex1-18-2.html" target="mainframe">네임앵커</a></li>
      </ul>
    </nav>
		<p><strong>html5 구조 요소를 이용한 마크업 예시</strong></p>
		<div>
			<iframe src="ex1-37.html" title="반응형웹" width="500" height="500" name="mainframe"></iframe>
		</div>
	</body>
</html>

▪ 2026 보완: 디스클로저와 popover

8. <details> / <summary> — 접기·펼치기

Info: 👁️‍🗨️ 자바스크립트 없이 접기·펼치기 를 만드는 시맨틱 요소. 모던 FAQ·공지사항·코드 예제에 자주 쓴다.

<details>
  <summary>FAQ - 환불 정책은 어떻게 되나요?</summary>
  <p>구매일로부터 7일 이내 환불 가능합니다.</p>
</details>
요소역할
<details>컨테이너. 기본은 접힌 상태
<summary>항상 보이는 요약 줄 — 클릭하면 펼쳐진다
open 속성<details open> 으로 시작부터 펼친 상태

CSS ::details-content 의사 요소 (2024+) 로 펼침 영역 스타일·전환 가능. 브라우저 검색 (Ctrl + F) 도 접힌 영역 내부 텍스트를 찾을 수 있다.

Info: 💡 <dialog> 가 모달 이라면 <details> 는 문서 흐름 안의 토글. 둘은 다른 용도다.


9. popover API

Info: 👁️‍🗨️ 2024 년 표준화·Baseline 진입. 메뉴·툴팁·드롭다운 같은 가벼운 팝오버 를 자바스크립트 없이 만든다.

<button popovertarget="my-tip" popovertargetaction="show">
  도움말 보기
</button>

<div id="my-tip" popover>
  <p>여기 도움말이 표시된다.</p>
  <button popovertarget="my-tip" popovertargetaction="hide">닫기</button>
</div>
속성위치의미
popover팝오버 본체popover (= auto) / manual / hint
popovertarget="id"트리거 버튼어느 팝오버를 제어할지
popovertargetaction트리거 버튼show / hide / toggle (기본)

popover 값 차이

값동작
auto (기본)바깥 클릭·ESC 로 자동 닫힘. 한 번에 하나만 열림
manual명시적으로 닫아야 함. 여러 개 동시 가능
hint툴팁용. auto 와 비슷하지만 다른 auto 와 동시 가능

<dialog> 와 비교

비교<dialog> (modal)popover
용도모달 — 작업 강제메뉴·툴팁·드롭다운
배경 차단✓ (::backdrop)✗ (auto 는 바깥 클릭만 닫음)
포커스 트랩✓ (showModal())✗
작성 부담API 호출 필요속성만으로

Info: 💡 진짜 모달 (작업 강제) 은 <dialog>, 가벼운 팝업 (메뉴·툴팁) 은 popover.

목차

  • 1. div
  • 2. span
  • 3.시맨틱 구조요소
  • 4. audio
  • 5. video 요소로 동영상 삽입
  • 6. 아이프레임
  • 7. 인라인프레임에서 하이퍼링크 연결
  • ▪ 2026 보완: 디스클로저와 popover
  • 8. `<details>` / `<summary>` — 접기·펼치기
  • 9. popover API