Search
Duplicate

๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ํƒœ๊ทธ

๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ํƒœ๊ทธ

HTML์—์„œ ์˜ค๋””์˜ค, ๋น„๋””์˜ค, ๊ทธ๋ž˜ํ”ฝ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ ๋ฅผ ์›น ํŽ˜์ด์ง€์— ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.
โ€ข
audio
โ€ข
video
โ€ข
iframe
โ€ข
canvas

audio

์›น ํŽ˜์ด์ง€์—์„œ ์˜ค๋””์˜ค ํŒŒ์ผ์„ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค.
ํƒœ๊ทธ
์†์„ฑ
์„ค๋ช…
์˜ˆ์‹œ
<audio>
src
์˜ค๋””์˜ค ํŒŒ์ผ์˜ URL์„ ์ง€์ •
<audio src="sound.mp3"></audio>
controls
๊ธฐ๋ณธ ์˜ค๋””์˜ค ์ปจํŠธ๋กค(์žฌ์ƒ, ์ผ์‹œ ์ •์ง€ ๋“ฑ)์„ ํ‘œ์‹œ
<audio controls></audio>
autoplay
ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ ์ž๋™์œผ๋กœ ์˜ค๋””์˜ค๋ฅผ ์žฌ์ƒ
<audio src="sound.mp3" autoplay></audio>
loop
์˜ค๋””์˜ค๊ฐ€ ๋๋‚œ ํ›„ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ์‹œ์ž‘
<audio src="sound.mp3" loop></audio>
muted
์˜ค๋””์˜ค๋ฅผ ์Œ์†Œ๊ฑฐ ์ƒํƒœ๋กœ ์„ค์ •
<audio src="sound.mp3" muted></audio>
preload
ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ ์˜ค๋””์˜ค๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ • (auto, metadata, none)
<audio src="sound.mp3" preload="auto"></audio>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>์˜ค๋””์˜ค ํƒœ๊ทธ</title> </head> <body> <!-- audio ํƒœ๊ทธ ์†์„ฑ - autoplay : ์ž๋™์žฌ์ƒ - controls : ์˜ค๋””์˜ค ์žฌ์ƒ/๋ณผ๋ฅจ ์ปจํŠธ๋กค ํ‘œ์‹œ - loop : ๋ฐ˜๋ณต์žฌ์ƒ - preload : ์˜ค๋””์˜ค ํŒŒ์ผ ๋ฏธ๋ฆฌ ๋‹ค์šด๋กœ๋“œ - src : ์žฌ์ƒํ•  ์˜ค๋””์˜ค ํŒŒ์ผ ๊ฒฝ๋กœ - volume : ์žฌ์ƒ ๋ณผ๋ฅจ ํฌ๊ธฐ ( 0.0~1.0 ) - audio format(ํŒŒ์ผ ํฌ๋งท) : mp3, ogg, wav - MIME type(ํŒŒ์ผ ํ˜•์‹) : audio/mp3, audio/ogg, audio/wav --> <h1>audio ํƒœ๊ทธ</h1> <audio src="audio/bgm.mp3" controls></audio> <h1>ํ™•์žฅ์ž ํ˜ธํ™˜</h1> <audio controls autoplay> <source src="audio/bgm.mp3" type="audio/mp3"> <source src="audio/bgm.ogg" type="audio/ogg"> <source src="audio/bgm.wav" type="audio/wav"> </audio> <!-- source : ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์ง€์›ํ•˜๋Š” ์˜ค๋””์˜ค ํŒŒ์ผ ํ˜•์‹์„ ํ˜ธํ™˜์‹œ์ผœ์ฃผ๊ธฐ ์œ„ํ•œ ํƒœ๊ทธ --> </body> </html>
HTML
๋ณต์‚ฌ

video

์›น ํŽ˜์ด์ง€์—์„œ ๋น„๋””์˜ค ํŒŒ์ผ์„ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค.
ํƒœ๊ทธ
์†์„ฑ
์„ค๋ช…
์˜ˆ์‹œ
<video>
src
๋น„๋””์˜ค ํŒŒ์ผ์˜ URL์„ ์ง€์ •
<video src="movie.mp4"></video>
controls
๊ธฐ๋ณธ ๋น„๋””์˜ค ์ปจํŠธ๋กค(์žฌ์ƒ, ์ผ์‹œ ์ •์ง€ ๋“ฑ)์„ ํ‘œ์‹œ
<video controls></video>
autoplay
ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ ์ž๋™์œผ๋กœ ๋น„๋””์˜ค๋ฅผ ์žฌ์ƒ
<video src="movie.mp4" autoplay></video>
loop
๋น„๋””์˜ค๊ฐ€ ๋๋‚œ ํ›„ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ์‹œ์ž‘
<video src="movie.mp4" loop></video>
muted
๋น„๋””์˜ค์˜ ์†Œ๋ฆฌ๋ฅผ ์Œ์†Œ๊ฑฐ ์ƒํƒœ๋กœ ์„ค์ •
<video src="movie.mp4" muted></video>
preload
ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ ๋น„๋””์˜ค๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ • (auto, metadata, none)
<video src="movie.mp4" preload="auto"></video>
width
๋น„๋””์˜ค์˜ ๊ฐ€๋กœ ํฌ๊ธฐ๋ฅผ ์„ค์ •
<video src="movie.mp4" width="640"></video>
height
๋น„๋””์˜ค์˜ ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ์„ค์ •
<video src="movie.mp4" height="360"></video>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>๋น„๋””์˜ค ํƒœ๊ทธ</title> </head> <body> <!-- video ํƒœ๊ทธ ์†์„ฑ - autoplay : ์ž๋™์žฌ์ƒ - controls : ์˜ค๋””์˜ค ์žฌ์ƒ/๋ณผ๋ฅจ ์ปจํŠธ๋กค ํ‘œ์‹œ - loop : ๋ฐ˜๋ณต์žฌ์ƒ - preload : ํŒŒ์ผ ๋ฏธ๋ฆฌ ๋‹ค์šด๋กœ๋“œ - src : ์žฌ์ƒํ•  ์˜ค๋””์˜ค ํŒŒ์ผ ๊ฒฝ๋กœ - volume : ์žฌ์ƒ ๋ณผ๋ฅจ ํฌ๊ธฐ ( 0.0~1.0 ) - poster : ์ธ๋„ค์ผ ์ด๋ฏธ์ง€ - muted : ๋น„๋””์˜ค์˜ ์˜ค๋””์˜ค ์Œ์†Œ๊ฑฐ - width/height : ๋น„๋””์˜ค ๊ฐ€๋กœ ์„ธ๋กœ ์‚ฌ์ด์ฆˆ - video format(ํŒŒ์ผํฌ๋งท) : mp4, webm, ogg - MIME type (ํŒŒ์ผํ˜•์‹) : video/mp4, video/webm, video/ogg --> <h1>video ํƒœ๊ทธ</h1> <video src="video/video.mp4" autoplay controls width="1024" height="768"></video> <h1>ํ™•์žฅ์ž ํ˜ธํ™˜</h1> <video width="1024" height="768" controls> <source src="video/video.mp4" type="video/mp4"> <source src="video/video.ogg" type="video/ogg"> <source src="video/video.webm" type="video/webm"> </video> <h1>์ธ๋„ค์ผ</h1> <video src="video/video.mp4" controls width="1024" height="768" poster="img/poster.png"></video> <div style="height: 500px;"></div> </body> </html>
HTML
๋ณต์‚ฌ

iframe

๋‹ค๋ฅธ ์›น ํŽ˜์ด์ง€๋ฅผ ํ˜„์žฌ ํŽ˜์ด์ง€ ๋‚ด์— ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค.
ํƒœ๊ทธ
์†์„ฑ
์„ค๋ช…
์˜ˆ์‹œ
<iframe>
src
iframe์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋กœ๋“œํ•  URL์„ ์ง€์ •
<iframe src="https://example.com"></iframe>
width
iframe์˜ ๊ฐ€๋กœ ํฌ๊ธฐ๋ฅผ ์„ค์ •
<iframe src="https://example.com" width="600"></iframe>
height
iframe์˜ ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ์„ค์ •
<iframe src="https://example.com" height="400"></iframe>
title
iframe์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ œ๋ชฉ์„ ์„ค์ •
<iframe src="https://example.com" title="Description"></iframe>
frameborder
iframe์˜ ํ…Œ๋‘๋ฆฌ ์„ค์ • (0 ๋˜๋Š” 1)
<iframe src="https://example.com" frameborder="0"></iframe>
allowfullscreen
iframe์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์ „์ฒด ํ™”๋ฉด ๋ชจ๋“œ๋กœ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ—ˆ์šฉ
<iframe src="https://example.com" allowfullscreen></iframe>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>iframe</title> </head> <body> <!-- iframe (inline frame) : ์›น ํŽ˜์ด์ง€ ์•ˆ์—์„œ ๋‹ค๋ฅธ ์›น ํŽ˜์ด์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ํƒœ๊ทธ - name ์†์„ฑ์„ ์ง€์ •ํ•˜๋ฉด target ํ”„๋ ˆ์ž„์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค - naver, google ๋“ฑ ์ผ๋ถ€ ์‚ฌ์ดํŠธ์—์„œ๋Š” iframe ์„ ํ†ตํ•ด ์ ‘๊ทผ์„ ๋ง‰๊ณ  ์žˆ๋‹ค. --> <h1>๋‚ด๋ถ€ ํŽ˜์ด์ง€ ๋ฐ ์™ธ๋ถ€ ํŽ˜์ด์ง€ ํ‘œ์‹œํ•˜๊ธฐ</h1> <iframe src="03_inner.html" width="400" height="240"></iframe> <iframe src="http://www.tcpschool.com" width="400" height="240"></iframe> <hr> <h3>target ํ”„๋ ˆ์ž„์œผ๋กœ ํ‘œ์‹œํ•˜๊ธฐ</h3> <iframe src="" name="frame1" width="400" height="240"></iframe> <p> <a href="http://typingclub.com" target="frame1">์˜ํƒ€ ์‚ฌ์ดํŠธ</a> </p> <iframe src="" name="frame2" width="400" height="240"></iframe> <p> <a href="http://hancomtyping.com" target="frame2">ํ•œํƒ€ ์‚ฌ์ดํŠธ</a> </p> <h3>Youtube ๋™์˜์ƒ ํ‘œ์‹œํ•˜๊ธฐ</h3> <iframe width="560" height="315" src="https://www.youtube.com/embed/zsA3gixXHNk?si=9_tpK6zy8vjqDHIW" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> <div style="height: 500px;"></div> </body> </html>
HTML
๋ณต์‚ฌ

canvas

๊ทธ๋ž˜ํ”ฝ์„ ๊ทธ๋ฆฌ๊ฑฐ๋‚˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
JavaScript์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜์–ด ๋™์ ์ธ ๊ทธ๋ž˜ํ”ฝ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํƒœ๊ทธ
์†์„ฑ
์„ค๋ช…
์˜ˆ์‹œ
<canvas>
width
์บ”๋ฒ„์Šค์˜ ๊ฐ€๋กœ ํฌ๊ธฐ๋ฅผ ์„ค์ •
<canvas width="500"></canvas>
height
์บ”๋ฒ„์Šค์˜ ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ์„ค์ •
<canvas height="300"></canvas>
id
์บ”๋ฒ„์Šค ์š”์†Œ์˜ ์‹๋ณ„์ž
<canvas id="myCanvas"></canvas>
style
์บ”๋ฒ„์Šค์˜ CSS ์Šคํƒ€์ผ์„ ์„ค์ •
<canvas style="border:1px solid #000;"></canvas>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>๋ธŒ๋Ÿฌ์‹œ๋กœ ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ</title> <style> canvas { border: 1px solid black; display: block; margin: 0 auto; background-color: #f0f0f0; } .controls { text-align: center; margin: 20px; } button { margin: 0 10px; padding: 10px 20px; font-size: 16px; cursor: pointer; } </style> </head> <body> <div class="controls"> <button id="clearBtn">์ „์ฒด ์ง€์šฐ๊ธฐ</button> <button id="saveBtn">๊ทธ๋ฆผ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ</button> </div> <canvas id="myCanvas" width="800" height="600"></canvas> <script> const canvas = document.getElementById('myCanvas'); const ctx = canvas.getContext('2d'); let drawing = false; // ๋งˆ์šฐ์Šค ๋‹ค์šด ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ canvas.addEventListener('mousedown', (e) => { drawing = true; ctx.beginPath(); ctx.moveTo(e.clientX - canvas.offsetLeft, e.clientY - canvas.offsetTop); }); // ๋งˆ์šฐ์Šค ์—… ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ canvas.addEventListener('mouseup', () => { drawing = false; }); // ๋งˆ์šฐ์Šค ์ด๋™ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ canvas.addEventListener('mousemove', (e) => { if (drawing) { ctx.lineTo(e.clientX - canvas.offsetLeft, e.clientY - canvas.offsetTop); ctx.strokeStyle = 'black'; // ์„  ์ƒ‰์ƒ ctx.lineWidth = 5; // ์„  ๋‘๊ป˜ ctx.lineCap = 'round'; // ์„  ๋ ๋ชจ์–‘ ctx.stroke(); } }); // ๋งˆ์šฐ์Šค ๋– ๋‚˜๊ธฐ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ canvas.addEventListener('mouseleave', () => { if (drawing) { drawing = false; } }); // ์ „์ฒด ์ง€์šฐ๊ธฐ ๋ฒ„ํŠผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ document.getElementById('clearBtn').addEventListener('click', () => { ctx.clearRect(0, 0, canvas.width, canvas.height); }); // ๊ทธ๋ฆผ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ๋ฒ„ํŠผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ document.getElementById('saveBtn').addEventListener('click', () => { const link = document.createElement('a'); link.href = canvas.toDataURL('image/png'); link.download = 'drawing.png'; link.click(); }); </script> </body> </html>
HTML
๋ณต์‚ฌ