๐Ÿ“Web Developing/CSS ๊ธฐ์ดˆ

VII. ๋ฐ˜์‘ํ˜• ์›น๊ณผ ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ - 1. ๋ฐ˜์‘ํ˜• ์›น

Hush 2022. 6. 8. 19:42

๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์ด๋ž€

๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์€ ์›น ์š”์†Œ๋ฅผ ํ™”๋ฉด ํฌ๊ธฐ์— ๋งž๊ฒŒ ์žฌ๋ฐฐ์น˜ํ•˜๊ณ  ๊ฐ ์š”์†Œ์˜ ํ‘œ์‹œ ๋ฐฉ๋ฒ•๋งŒ ๋ฐ”๊พธ์–ด ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌํ˜„ํ•ด ์ค€๋‹ค.

 

๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ๋ฅผ ์œ„ํ•œ ๋ทฐํฌํŠธ

๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•Œ์•„ ๋‘ฌ์•ผ ํ•  ๊ฒƒ์ด ๋ทฐํฌํŠธ(viewport)์ด๋‹ค.

PC์— ๋งž๊ฒŒ ์ œ์ž‘๋œ ์›น ์‚ฌ์ดํŠธ๋ฅผ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์—์„œ ๋ณด๋ฉด ๋ชจ๋“  ๋‚ด์šฉ์ด ์ž‘๊ฒŒ ํ‘œ์‹œ๋œ๋‹ค.

๊ทธ ์ด์œ ๋Š” ํ‘œ์‹œ๋˜๋Š” ํ”ฝ์…€์˜ ์ฐจ์ด ๋•Œ๋ฌธ์ธ๋ฐ, ๋ทฐํฌํŠธ๋ฅผ ์ง€์ •ํ•˜๋ฉด ์ ‘์†ํ•œ ๊ธฐ๊ธฐ์˜ ํ™”๋ฉด์— ๋งž์ถ”์–ด ํ™•๋Œ€ํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œํ•ด์„œ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋•Œ ๋ทฐํฌํŠธ๋ž€ ์Šค๋งˆํŠธํฐ ํ™”๋ฉด์—์„œ ์‹ค์ œ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋˜๋Š” ์˜์—ญ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด PCํ™”๋ฉด์— ๋งž์ถฐ์„œ ์ œ์ž‘ํ•œ ์‚ฌ์ดํŠธ๋ฅผ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์—์„œ ํ™•์ธํ•˜๋ฉด ์›๋ž˜ PCํ™”๋ฉด ํฌ๊ธฐ๋งŒํผ ํ‘œ์‹œํ•˜๋ฏ€๋กœ ๊ธ€์ž๊ฐ€ ์•„์ฃผ ์ž‘๋‹ค. 

๋˜ํ•œ ๋ชจ๋ฐ”์ผ ์‚ฌ์ดํŠธ์— ์ ํ•ฉํ•œ ์‚ฌ์ดํŠธ๋ฅผ ์ œ์ž‘ํ–ˆ๋”๋ผ๋„ ์ •์ž‘ ์Šค๋งˆํŠธํฐ ํ™”๋ฉด์—์„œ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๋ฉด ์›๋ž˜ ์˜๋„ํ•œ ๋Œ€๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ธฐ๋„ ํ•œ๋‹ค.

์ด๊ฒƒ์€ ์›นํ‚คํŠธ(webkit)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋ชจ๋ฐ”์ผ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ๋ทฐํฌํŠธ ๋„ˆ๋น„๊ฐ€ 980px์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋‹ค์‹œ ๋งํ•ด ์›น ํŽ˜์ด์ง€ ๋„ˆ๋น„๋ฅผ ์Šค๋งˆํŠธํฐ์šฉ์ธ 320px๋กœ ๋งž์ถ”์–ด ์›น ์‚ฌ์ดํŠธ๋ฅผ ์ œ์ ํ•˜๋”๋ผ๋„ ์Šค๋งˆํŠธํฐ์šฉ ๋ชจ๋ฐ”์ผ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋ณธ ๋ทฐํฌํŠธ ๋„ˆ๋น„๊ฐ€ 980px์ด๋ฏ€๋กœ ์›น ํŽ˜์ด์ง€ ๋„ˆ๋น„๋ฅผ ๋ฌด์กฐ๊ฑด 980px๋กœ ํ‘œ์‹œํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

๊ฒฐ๊ตญ ์Šค๋งˆํŠธํฐ์šฉ์œผ๋กœ ์ œ์ž‘๋œ ์›น ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ์€ ์˜๋„์™€ ๋‹ฌ๋ฆฌ ์ž‘์€ ๊ธ€์”จ์™€ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์— ์ ํ•ฉํ•œ ์‚ฌ์ดํŠธ๋ฅผ ์ œ์ž‘ํ•˜๋ ค๋ฉด ๋ทฐํฌํŠธ ๊ฐœ๋…์„ ๊ผญ ์•Œ์•„์•ผ ํ•œ๋‹ค.

 

๋ทฐํฌํŠธ ์ง€์ •ํ•˜๊ธฐ

๋ทฐํฌํŠธ๋Š” <meta> ํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด <head>์™€ </head> ํƒœ๊ทธ ์‚ฌ์ด์— ์ž‘์„ฑํ•œ๋‹ค. ๋ทฐํฌํŠธ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ธฐ๋ณธํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

<meta name="viewport" content="์†์„ฑ=๊ฐ’1", "์†์„ฑ2=๊ฐ’2", ......>

์ด์™€ ๊ฐ™์ด content ์†์„ฑ์„ ์ด์š”ํ•ด ๋ทฐํฌํŠธ ์†์„ฑ๊ณผ ์†์„ฑ๊ฐ’์„ ์ง€์ •ํ•˜๋ฉด ๋˜๋Š”๋ฐ, content ์•ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ทฐํฌํŠธ์˜ ์†์„ฑ์€ ๋‹ค์Œ ํ‘œ์™€ ๊ฐ™๋‹ค.

์ข…๋ฅ˜ ์„ค๋ช… ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ’ ๊ธฐ๋ณธ๊ฐ’
width ๋ทฐํฌํŠธ ๋„ˆ๋น„ device-width ๋˜๋Š” ํฌ๊ธฐ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ๊ฐ’
height ๋ทฐํฌํŠธ ๋†’์ด device-height ๋˜๋Š” ํฌ๊ธฐ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ๊ฐ’
user-scalable ํ™•๋Œ€, ์ถ•์†Œ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ yes ๋˜๋Š” no
(yes๋Š” 1๋กœ, device-width์™€ device-height๊ฐ’์€ 10์œผ๋กœ ๊ฐ„์ฃผ)
yes
initial-scale ์ดˆ๊ธฐ ํ™•๋Œ€, ์ถ•์†Œ ๊ฐ’ 1~10 1

๋‹ค์Œ์€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ทฐํฌํŠธ ์†์„ฑ์œผ๋กœ ์›น  ํŽ˜์ด์ง€ ๋ทฐํฌํŠธ์œผ ใ…ฃ๋„ˆ๋น„๋ฅผ ์Šค๋งˆํŠธํฐ ํ™”๋ฉด ๋„ˆ๋น„์— ๋งž์ถ”๊ณ  ์ดˆ๊ธฐ ํ™”๋ฉด ๋ฐฐ์œจ์„ 1๋กœ ์ง€์ •ํ•œ๋‹ค.

<meta name="viewport" content="width=device-width, initial-scale=1">

 

 

๋ทฐํฌํŠธ ๋‹จ์œ„

๋ทฐํฌํŠธ ๊ฐœ๋…์ด ๋“ฑ์žฅํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” CSS์—์„œ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•  ๋•Œ ์ฃผ๋กœ px, %์˜ ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ด์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ทฐํฌํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋Š” ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

vw(viewport width) 1vw๋Š” ๋ทฐํฌํŠธ ๋„ˆ๋น„์˜ 1%์™€ ๊ฐ™๋‹ค.
vh(viewport height) 1vh๋Š” ๋ทฐํฌํŠธ ๋†’์ด์˜ 1%์™€ ๊ฐ™๋‹ค.
vmin(viewport minimum) ๋ทฐํฌํŠธ์˜ ๋„ˆ๋น„์™€ ๋†’์ด ์ค‘์—์„œ ์ž‘์€ ๊ฐ’์˜ 1%์™€ ๊ฐ™๋‹ค.
vmax(viewport maximum) ๋ทฐํฌํŠธ ๋„ˆ๋น„์™€ ๋†’์ด ์ค‘์—์„œ ํฐ ๊ฐ’์˜ 1%์™€ ๊ฐ™๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ทฐํฌํŠธ์˜ ๋„ˆ๋น„๊ฐ€ 1000px, ๋†’์ด๊ฐ€ 800px ์ผ ๊ฒฝ์šฐ 1vw๋Š” 10px, 1vh๋Š” 8px์ด ๋  ๊ฒƒ์ด๋‹ค.

1vmin์€ 8px, 1vmax๋Š” 10px๊ฐ€ ๋œ๋‹ค. ๋งŒ์ผ ํ™”๋ฉด์„ ๋Œ๋ฆฌ๋ฉด ์ด ๊ฐ’๋“ค์ด ๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์ œ๋Š” ๊ธ€์ž ํฌ๊ธฐ๋ฅผ 5vw๋กœ ์ง€์ •ํ•ด์„œ ๋ทฐํฌํŠธ ํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์งˆ ๋•Œ๋งˆ๋‹ค ์ œ๋ชฉ์˜ ๊ธ€์ž ํฌ๊ธฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋‹ฌ๋ผ์ง€๋„๋ก ํ•œ ๊ฒƒ์ด๋‹ค.

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="utf-8">  
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Html-basic</title>
        <style>
            h1{
                font-size: 5vw;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <h1>์•ˆ๋…•ํ•˜์„ธ์š”?</h1>
    </body>
</html>