๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปWEB FrontEnd/๋ฐ˜์‘ํ˜• ์›น

๊ฐ€๋ณ€ ๊ทธ๋ฆฌ๋“œ / ๊ฐ€๋ณ€ ํŒจ๋”ฉ,๋งˆ์ง„ / ๊ฐ€๋ณ€ ์ด๋ฏธ์ง€,๋™์˜์ƒ

1. ๊ทธ๋ฆฌ๋“œ

'๊ทธ๋ฆฌ๋“œ(Grid)'๋Š” ๊ฒฉ์ž๋ชจ์–‘์˜ ๋ฌด๋Šฌ๋ฅผ ๋œปํ•œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์“ฐ๋Š” ํ”„๋กœ๊ทธ๋žจ์ธ Excel, Word, PowerPoint์˜ 'ํ‘œ'์™€ ๊ฐ™์€ ํ˜•ํƒœ๋„ ์ด ๊ทธ๋ฆฌ๋“œ(Grid) ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค.

 

1) ๊ณ ์ • ๊ทธ๋ฆฌ๋“œ(fixed grid) : ํ™”๋ฉด ๋„ˆ๋น„๋ฅผ ์ผ์ •ํ•˜๊ฒŒ ๊ณ ์ •ํ•˜๊ณ  ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“  ๊ฒƒ.

ํ™”๋ฉด ๋„ˆ๋น„๋ฅผ ํŠน์ • ๊ฐ’์œผ๋กœ ๊ณ ์ •ํ•ด ๋†“์œผ๋ฉด ๊ทธ ์•ˆ์— ํ‘œ์‹œํ•  ์š”์†Œ๋“ค์˜ ๋„“์ด ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ณ  ๋„ˆ๋น„๊ฐ€ ํ•ญ์ƒ ์ผ์ •ํ•˜๊ฒŒ ํ‘œ์‹œ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค๊ธฐ๋„ ์‰ฝ๋‹ค. ๋ฐ์Šคํฌํ†ฑ์šฉ ์‚ฌ์ดํŠธ๋งŒ ์ œ์ž‘ํ•œ๋‹ค๋ฉด ์ด ๋ฐฉ๋ฒ•์ด ํŽธ๋ฆฌํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๊ธฐ๊ธฐ๋ฅผ ์ด์šฉํ•ด์„œ ์ ‘์†ํ•˜๋Š” ์‚ฌ์ดํŠธ๋ผ๋ฉด, ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์˜ ๋„ˆ๋น„๊ฐ€ ์ž‘์€ ๊ธฐ๊ธฐ์—์„œ ์ ‘์†ํ–ˆ์„ ๋•Œ๋Š” ์‚ฌ์ดํŠธ ์ผ๋ถ€๊ฐ€ ๊ฐ€๋ ค์ ธ์„œ ์Šคํฌ๋กค ๋ง‰๋Œ€๋ฅผ ์‚ฌ์šฉํ•ด ํ™”๋ฉด์„ ์˜ฎ๊ธฐ๋ฉด์„œ ๋ด์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ๋‹ค.

 

2) ๊ฐ€๋ณ€ ๊ทธ๋ฆฌ๋“œ(fluid grid) : ํ™”๋ฉด ๋„ˆ๋น„๋ฅผ % ๊ฐ™์€ ๊ฐ€๋ณ€ ๊ฐ’์œผ๋กœ ์ง€์ •ํ•œ ๊ฒƒ.

๊ณ ์ • ๊ทธ๋ฆฌ๋“œ(fixed grid)์˜ ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ ๊ฐ€๋ณ€ ๊ทธ๋ฆฌ๋“œ(fluid grid)์ด๋‹ค. ๊ฐ€๋ณ€ ๊ทธ๋ฆฌ๋“œ๋Š” ํ™”๋ฉด ๋„ˆ๋น„๋ฅผ ํŠน์ • ๊ฐ’์œผ๋กœ ๊ณ ์ •ํ•ด ๋†“์ง€ ์•Š๊ณ  ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์˜ ๋„ˆ๋น„์— ๋”ฐ๋ผ ์ฝ˜ํ…์ธ  ๋„ˆ๋น„๊ฐ€ ๋‹ฌ๋ผ์ง€๊ฒŒ ํ•œ๋‹ค.

 

 

2. ๊ฐ€๋ณ€ ๊ทธ๋ฆฌ๋“œ 

์ •ํ•ด์ ธ ์žˆ๋Š” ๊ณต์‹(๊ฐ€๋ณ€ ๊ทธ๋ฆฌ๋„ ๊ณต์‹)์— ์˜ํ•ด ์ •ํ™•ํ•œ ๊ฐ€๋ณ€ ํฌ๊ธฐ์˜ ๋ฐ•์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ 

 

1) ๊ฐ€๋ณ€ ๊ทธ๋ฆฌ๋“œ ๊ณต์‹

๊ฐ€๋ณ€ box ๊ณต์‹ (๊ฐ€๋ณ€ ํฌ๊ธฐ๋กœ ๋งŒ๋“ค ๋ฐ•์Šค์˜ ๊ฐ€๋กœ ๋„ˆ๋น„ ÷ ๊ฐ€๋ณ€ ํฌ๊ธฐ๋กœ ๋งŒ๋“ค ๋ฐ•์Šค๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ๋ฐ•์Šค์˜ ๊ฐ€๋กœ ๋„ˆ๋น„) X 100 = ๊ฐ€๋ณ€ ํฌ๊ธฐ์˜ % ๊ฐ’
๊ฐ€๋ณ€ margin ๊ณต์‹ (๊ฐ€๋ณ€ ๋งˆ์ง„์„ ์ ์šฉํ•  ๋งˆ์ง„๊ฐ’ ÷ ์ ์šฉํ•  ๋ฐ•์Šค๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ๋ฐ•์Šค์˜ ๊ฐ€๋กœ ๋„ˆ๋น„) x 100 = ๊ฐ€๋ณ€ ๋งˆ์ง„ % ๊ฐ’
๊ฐ€๋ณ€ padding ๊ณต์‹ (๊ฐ€๋ณ€ ํŒจ๋”ฉ์„ ์ ์šฉํ•  ํŒจ๋”ฉ๊ฐ’ ÷ ์ ์šฉํ•  ๋ฐ•์Šค๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ๋ฐ•์Šค์˜ ๊ฐ€๋กœ ๋„ˆ๋น„) x 100 = ๊ฐ€๋ณ€ ํŒจ๋”ฉ % ๊ฐ’
๊ฐ€๋ณ€ font ๊ณต์‹ (๊ฐ€๋ณ€ ํฐํŠธ๋ฅผ ์ ์šฉํ•  ๊ธ€์ž ํฌ๊นƒ๊ฐ’ ÷ ์ ์šฉํ•  ์š”์†Œ๋ฅผ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ์š”์†Œ์˜ ๊ธ€์ž ํฌ๊นƒ๊ฐ’) = ๊ฐ€๋ณ€ ํฐํŠธ๊ฐ’
๊ฐ€๋ณ€ ํฐํŠธ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•ด์ฃผ๋Š” ์‚ฌ์ดํŠธ [http://pxtoem.com]

 

2) ๊ฐ€๋ณ€ box

index.html
0.00MB

 

2) ๊ฐ€๋ณ€ margin, ๊ฐ€๋ณ€ padding

๋ฐ˜์‘ํ˜• ์›น์‚ฌ์ดํŠธ์—์„œ๋Š” ๋ชจ๋“  ์š”์†Œ๊ฐ€ ๊ฐ€๋ณ€์ ์ด์–ด์•ผ ํ•œ๋‹ค. ๊ตฌ์กฐ์ƒ์˜ ๊ฐ„๊ฒฉ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ด๋ฏ€๋กœ, ๋งˆ์ง„๊ณผ ํŒจ๋”ฉ์„ ๊ฐ€๋ณ€ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

โ€ป CSS3์˜ calcํ•จ์ˆ˜ : ๋ฐ•์Šค๋Š” ๊ฐ€๋ณ€์ ์ด๋˜ ๋งˆ์ง„์ด๋‚˜ ํŒจ๋”ฉ์€ ๊ณ ์ •๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜

 

3) ๊ฐ€๋ณ€ font

- ๊ฐ€๋ณ€ ๊ทธ๋ฆฌ๋“œ ๋‹จ์œ„๋“ค

(์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €๋Š” px๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์ถ•์†Œ, ํ™•๋Œ€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.)

๋‹จ์œ„ ๋œป  
em ๋ถ€๋ชจ์˜ font-size๋ฅผ ์ƒ์† ๋ฐ›์Œ. 16px=1em
rem ๋ถ€๋ชจ์˜ font-size๋ฅผ ์ƒ์† ๋ฐ›์ง€ ์•Š๊ณ  ์ตœ์ƒ์œ„(html)์˜ font-size๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•จ.  
vw ์›น ๋„“์ด๋ฅผ 100์„ ๊ธฐ์ค€์œผ๋กœ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•จ. (๊ธ€์ž๊ฐ’ x ๋ธŒ๋ผ์šฐ์ € ๋„ˆ๋น„๊ฐ’) ÷ 100
vh ์›น ๋†’์ด๋ฅผ 100์„ ๊ธฐ์ค€์œผ๋กœ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•จ. (๊ธ€์ž๊ฐ’ x ๋ธŒ๋ผ์šฐ์ € ๋†’์ด๊ฐ’) ÷ 100
vmin ๋†’์ด์™€ ๋„ˆ๋น„์ค‘ ์งง์€์ชฝ์„ 100์„๊ธฐ์ค€์œผ๋กœํ•˜์—ฌ ํฌ๊ธฐ ๊ฒฐ์ •.  
vmax ๋†’์ด์™€ ๋„ˆ๋น„์ค‘ ๊ธด์ชฝ์„ 100์„๊ธฐ์ค€์œผ๋กœ ํ•˜์—ฌ ํฌ๊ธฐ ๊ฒฐ์ •.  

 

 

3. ๊ฐ€๋ณ€ ์ด๋ฏธ์ง€์™€ ๊ฐ€๋ณ€ ๋™์˜์ƒ

1) ์›น์— ๋™์˜์ƒ ํŒŒ์ผ์„ ๊ฐ€๋ณ€์  ์š”์†Œ๋กœ ๋„ฃ๊ธฐ

์ด๋ฏธ์ง€, ๋™์˜์ƒ ์š”์†Œ์— ๋„“์ด ๊ฐ’๊ณผ ์ตœ๋Œ€ ๋„“์ด ๊ฐ’์„ 100%๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์š”์†Œ๊ฐ€ ๊ฐ€๋ณ€์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

<!DOCTYPE HTML>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
<title>Document</title>
<style>
*{margin:0; padding:0;}

#wrap{
width:90%;
/* 960px */
margin:0 auto;
border:4px solid #000;
}

#wrap div{
width:50%;
display:inline-block;
}

img, video{ /*์ด๋ฏธ์ง€, ๋™์˜์ƒ ์š”์†Œ์— ๋„“์ด ๊ฐ’๊ณผ ์ตœ๋Œ€ ๋„“์ด ๊ฐ’์„ 100%๋กœ ์„ค์ •*/
width:100%;
max-width:100%;
}
</style>
</head>
<body>
	<div id="wrap">
		<div>
			<video controls preload="auto">
			    <source src="source/video.mp4" type='video/mp4'></source>
			    <source src="source/video.ogv" type='video/ogg'></source>
			    <source src="source/video.webm" type='video/webm'></source>
		    </video>
		</div><div>
		<img src="source/img_01.jpg"></div>
	</div>
</body>
</html>

 

2) ๋™์˜์ƒ์„ 16:9๋น„์œจ ์œ ์ง€ํ•˜๋ฉด์„œ ๊ฐ€๋ณ€์  ์š”์†Œ๋กœ ๋„ฃ๊ธฐ

๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์š”์†Œ ์ค‘ ๋™์˜์ƒ ์š”์†Œ๋Š” ๋Œ€๋ถ€๋ถ„ 16:9 ๋น„์œจ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์œ ํŠœ๋ธŒ์™€ ๋น„๋ฉ”์˜ค๋„ 16:9 ๋น„์œจ๋กœ ๋™์˜์ƒ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŒจ๋”ฉ ์†์„ฑ์„ ์ด์šฉํ•˜๋ฉด ์ด ๋™์˜์ƒ ํ”Œ๋ ˆ์ด์–ด๋“ค๋„ ๊ฐ€๋ณ€์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

(<iframe> ํƒœ๊ทธ๋Š” ๋‹ค๋ฅธ ์›นํŽ˜์ด์ง€๋ฅผ ๋‚ด ์›นํŽ˜์ด์ง€๋กœ ๊ฐ€์ง€๊ณ  ์˜ค๊ฑฐ๋‚˜ ๋™์˜์ƒ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ํƒœ๊ทธ์ด๋‹ค.)

<!DOCTYPE HTML>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
<title></title>
<style>
*{
margin:0;
padding:0;
}
    
video, iframe{
width:100%;
max-width:100%;
}
    
#wrap{
position:relative;
padding-bottom:56.25%;  /*16:9๋น„์œจ ๋™์˜์ƒ์„ ๊ฐ€๋ณ€์  ์š”์†Œ๋กœ ๋„ฃ๊ธฐ*/
/* 9 ÷ 16 */
height:0;
overflow:hidden;
}
    
iframe{
position:absolute;
top:0;
left:0;
height:100%;
}
</style>
</head>
<body>
    <div id="wrap">
        <iframe src="https://player.vimeo.com/video/192526798?byline=0&badge=0" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
    </div>
</body>
</html>

 

3) ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ(jquery, fitVids) ์‚ฌ์šฉํ•˜์—ฌ ๋™์˜์ƒ ๊ฐ€์ ธ์˜ค๊ธฐ

<!DOCTYPE HTML>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
<title></title>
<style>
*{
margin:0;
padding:0;
}
    
video, iframe{
width:100%;
max-width:100%;
}
</style>
</head>
<body>
    <div id="wrap">
        <iframe src="https://player.vimeo.com/video/203671501" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
    </div>
<script src="source/jquery.min.js"></script>  /*์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์˜์ƒ ๋„ฃ๊ธฐ*/
<script src="source/jquery.fitvids.js"></script>
<script>
$("#wrap").fitVids();
</script>
</body>
</html>

 

 

 

 

 

 

'๐Ÿ’ปWEB FrontEnd > ๋ฐ˜์‘ํ˜• ์›น' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Flex  (0) 2020.10.26
๋ฏธ๋””์–ด ์ฟผ๋ฆฌ์™€ ๋ทฐํฌํŠธ  (0) 2020.10.25
๋ฐ˜์‘ํ˜• ์›น vs ์ ์‘ํ˜• ์›น  (0) 2020.10.22