๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ๊ณต๋ถ€/HTML5 + CSS3

[HTML+CSS][ํ”Œ๋ ‰์Šค ๋ฐ•์Šค ๋ ˆ์ด์•„์›ƒ] 01 - ํ”Œ๋ ‰์Šค ๋ฐ•์Šค ๋ ˆ์ด์•„์›ƒ๊ณผ ๊ธฐ๋ณธ ์†์„ฑ๋“ค

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2020. 8. 10.

 

 

[HTML+CSS][๋ฏธ๋””์–ด ์ฟผ๋ฆฌ] 03 - ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด ์›น ๋ฌธ์„œ ๋งŒ๋“ค๊ธฐ

[HTML+CSS][๋ฏธ๋””์–ด ์ฟผ๋ฆฌ] 02 - ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ์ ์šฉํ•˜๊ธฐ [HTML+CSS][๋ฏธ๋””์–ด ์ฟผ๋ฆฌ] 01 - ๋ฏธ๋””์–ด ์ฟผ๋ฆฌ ์ดํ•ดํ•˜๊ธฐ [HTML+CSS][๋ฐ˜์‘ํ˜• ์›น] 03 - ๊ฐ€๋ณ€ ๋ ˆ์ด์•„์›ƒ๊ณผ ๊ฐ€๋ณ€ ์š”์†Œ [HTML+CSS][๋ฐ˜์‘ํ˜• ์›น] 02 - ๊ฐ€๋ณ€ ๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„..

onelight-stay.tistory.com

 

ํ”Œ๋ ‰์Šค ๋ฐ•์Šค ๋ ˆ์ด์•„์›ƒ์ด ๋ฌด์—‡์ธ์ง€ ์‚ดํŽด๋ณด๊ณ 

ํ”Œ๋ ‰์Šค ๋ฐ•์Šค ๋ ˆ์ด์•„์›ƒ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ์†์„ฑ๋“ค์— ๋Œ€ํ•ด์„œ

์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

 

 


 

 

ํ”Œ๋ ‰์Šค ๋ฐ•์Šค ๋ ˆ์ด์•„์›ƒ

 

๊ทธ๋ฆฌ๋“œ ๋ ˆ์ด์•„์›ƒ์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๋ฉฐ

ํ”Œ๋ ‰์Šค ๋ฐ•์Šค๋ฅผ ์›ํ•˜๋Š” ์œ„์น˜์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์—ฌ์œ  ๊ณต๊ฐ„์— ๋”ฐ๋ผ ๋„ˆ๋น„๋‚˜ ๋†’์ด, ์œ„์น˜๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๋ณ€ํ˜•ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

ํ™”๋ฉด ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋ ˆ์ด์•„์›ƒ์˜ ๋ฐฐ์น˜๊ฐ€ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•ด์•ผ ํ•  ๋•Œ

ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1) ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ(flex container) – ์›น ๋ฌธ์„œ์— ํ…์ŠคํŠธ๋‚˜ ์ด๋ฏธ์ง€, ํ‘œ ๋“ฑ

์›น ์š”์†Œ๋“ค์„ ํ”Œ๋ ‰์Šค ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฌถ์–ด์ค˜์•ผ ํ•œ๋‹ค.

 

2) ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ(flex item) – ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด๊ธฐ๋Š” ์›น ์š”์†Œ์ด๋‹ค.

 

3) ์ฃผ์ถ•(main axis) – ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ๋“ค์„ ๋ฐฐ์น˜ํ•˜๋Š” ๊ธฐ๋ณธ ๋ฐฉํ–ฅ์œผ๋กœ

์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ˆ˜ํ‰ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๋ฉฐ

์‹œ์ž‘ ์ง€์ ์„ ์ฃผ์ถ• ์‹œ์ž‘์ ’, ๋๋‚˜๋Š” ์ง€์ ์„ ์ฃผ์ถ• ๋์ ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

4) ๊ต์ฐจ์ถ•(cross axis) – ์ถ”์ถ•๊ณผ ๊ต์ฐจ๋˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์œ„์—์„œ ์•„๋ž˜๋กœ ๋ฐฐ์น˜ํ•˜๊ฒŒ ๋˜๋ฉฐ,

๊ต์ฐจ์ถ•์—์„œ ๋ฐฐ์น˜๊ฐ€ ์‹œ์ž‘๋˜๋Š” ์ง€์ ์„ ๊ต์ฐจ์ถ• ์‹œ์ž‘์ ’,

๋ฐฐ์น˜๊ฐ€ ๋๋‚˜๋Š” ์ง€์ ์„ ๊ต์ฐจ์ถ• ๋์ ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

 


 

 

display ์†์„ฑ - ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ ์ง€์ •

 

ํ”Œ๋ ‰์Šค ๋ฐ•์Šค ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค๊ธฐ ์ „์— ๋ฐฐ์น˜ํ•˜๋ ค๋Š” ์›น ์š”์†Œ๋“ค์ด ์žˆ์„ ๋•Œ

ํ•ด๋‹น ์š”์†Œ๋“ค์„ ๊ฐ์‹ธ๋Š” ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ณ 

๊ทธ ๋ถ€๋ชจ ์š”์†Œ๋ฅผ ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ๋กœ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

ํ•ด๋‹น ์†Œ์Šค๋Š” #container๊ฐ€ ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ์ด๋ฉฐ

์•ˆ์— ๋‘ ๊ฐœ๋Š” ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ์ด ๋œ๋‹ค.

 

 


 

 

display ์†์„ฑ๊ณผ ๋ธŒ๋ผ์šฐ์ € ์ ‘๋‘์‚ฌ

 

ํ”Œ๋ ‰์Šค ๋ฐ•์Šค ๋ ˆ์ด์•„์›ƒ์€ ์ตœ์‹  ๋ชจ๋˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋ชจ๋‘ ์ง€์›์ด ๋˜๊ณ 

๋Œ€๋ถ€๋ถ„์˜ ๊ตฌ์‹ ๋ฒ„์ „์—์„œ๋„ ์ง€์›๋˜์ง€๋งŒ,

๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ํ”Œ๋ ‰์Šค ๋ฐ•์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—

๋ธŒ๋ผ์šฐ์ € ์ ‘๋‘์‚ฌ๋ฅผ ๋ถ™์—ฌ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

display ์†์„ฑ์˜ ๊ฒฝ์šฐ ์ ‘๋‘์‚ฌ๊ฐ€ ์ƒ๋‹นํžˆ ๋ณต์žกํ•˜๋‹ˆ ์ฐธ๊ณ  ๋ฐ”๋ž€๋‹ค.

 

 


 

 

flex-direction ์†์„ฑ - ํ”Œ๋ ‰์Šค ๋ฐฉํ–ฅ ์ง€์ •

 

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ ๊ฐ€๋กœ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ</title>
    <style>
        #container {
            display: flex;
            /* ๊ธฐ๋ณธ๊ฐ’์ด row์ธ ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ ์ง€์ • */
            background-color: black;
        }
        .box {
            margin: 7px;
            width: 250px;
            height: 500px;
            background-color: lightgray;
        }
        h2 { padding: 15px;}
    </style>
</head>
<body>
    <div id="container">
        <div id="box1" class="box"><h2>1</h2></div> <!--ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ-->
        <div id="box2" class="box"><h2>2</h2></div> <!--ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ-->
        <div id="box3" class="box"><h2>3</h2></div> <!--ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ-->
    </div>
</body>
</html>

ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ ๊ฐ€๋กœ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ ์„ธ๋กœ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ</title>
    <style>
         #container {
            display: flex;
            flex-direction: column;
            border: black solid 2px;
        }
        .box {
            width: 500px;
            height: 250px;
            background-color: lightgray;
            border: solid black 1px;
        }
        h2 { padding: 15px;}
    </style>
</head>
<body>
    <div id="container">
        <div id="box1" class="box"><h2>1</h2></div> <!--ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ-->
        <div id="box2" class="box"><h2>2</h2></div> <!--ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ-->
        <div id="box3" class="box"><h2>3</h2></div> <!--ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ-->
    </div>
</body>
</html>

ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ ์„ธ๋กœ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

 

 

 


 

 

flex-wrap ์†์„ฑ - ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ ํ•œ ์ค„ ๋˜๋Š” ์—ฌ๋Ÿฌ ์ค„๋กœ ๋ฐฐ์น˜

 

ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ์„ ํ•œ ์ค„์ด๋‚˜ ์—ฌ๋Ÿฌ ์ค„์— ๊ฑธ์ณ์„œ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ</title>
    <style>
        #container {
            width: 500px;
            height: 300px;
            margin: 0 auto;
            display: flex;
            -ms-flex-wrap: wrap;
            -webkit-flex-wrap: wrap;
            flex-wrap: wrap;
            border: black 2px solid;
        }
        #container div {
            width: 200px;
            border: solid black 2px;
            background: lightgray;
        }
        h2 {
            font-size: 20px;
            font-weight: bold;
            padding: 20px;
        }
    </style>
</head>
<body>
    <div id="container">
        <div id="box1"><h2>1</h2></div>
        <div id="box2"><h2>2</h2></div>
        <div id="box3"><h2>3</h2></div>
    </div>
</body>
</html>

ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ</title>
    <style>
        #container {
            width: 500px;
            height: 300px;
            margin: 0 auto;
            display: flex;
            -ms-flex-wrap: wrap-reverse;
            -webkit-flex-wrap: wrap-reverse;
            flex-wrap: wrap-reverse;
            border: black 2px solid;
        }
        #container div {
            width: 200px;
            border: solid black 2px;
            background: lightgray;
        }
        h2 {
            font-size: 20px;
            font-weight: bold;
            padding: 20px;
        }
    </style>
</head>
<body>
    <div id="container">
        <div id="box1"><h2>1</h2></div>
        <div id="box2"><h2>2</h2></div>
        <div id="box3"><h2>3</h2></div>
    </div>
</body>
</html>

ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

 

 


 

 

flex-flow ์†์„ฑ - ํ”Œ๋ ‰์Šค ๋ฐฉํ–ฅ๊ณผ ์—ฌ๋Ÿฌ ์ค„์˜ ๋ฐฐ์น˜ ํ•œ๊บผ๋ฒˆ์— ์ง€์ •

 

ํ”Œ๋ ‰์Šค ๋ฐ•์Šค๋ฅผ ์ด์šฉํ•ด ํ•ญ๋ชฉ๋“ค์„ ๋ฐฐ์น˜ํ•  ๋•Œ ๊ธฐ๋ณธ์ด ๋˜๋Š”

๋ฐฉํ–ฅ๊ณผ ์—ฌ๋Ÿฌ ์ค„ ๋ฐฐ์น˜ ์—ฌ๋ถ€๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋•Œ ํ”Œ๋ ‰์Šค ๋ฐฉํ–ฅ๊ณผ ํ”Œ๋ ‰์Šค ์ค„ ๋ฐฐ์น˜๋Š” ๊ณต๋ฐฑ๋ฌธ์ž๋กœ ํ•œ๋‹ค.

 

 


 

 

order ์†์„ฑ - ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ์˜ ๋ฐฐ์น˜ ์ˆœ์„œ ๋ฐ”๊พธ๊ธฐ

 

order ๊ฐ’์ด 0์ด๋ผ๋ฉด ์†Œ์Šค์— ์ž…๋ ฅํ•œ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์น˜๋˜๊ณ 

order ๊ฐ’์ด ์ˆซ์ž๋กœ ์ž…๋ ฅ๋˜์—ˆ์„ ๊ฒฝ์šฐ

๊ทธ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋ฐฐ์น˜๋œ๋‹ค.

 

์ด๋•Œ, order ๊ฐ’์˜ ์†์„ฑ์€ ํ”Œ๋ ‰์Šค ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์•„๋‹Œ

ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ์— ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

 

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ ๋ฐฐ์น˜ ์ˆœ์„œ ๋ฐ”๊พธ๊ธฐ</title>
    <style>
        #container {
            width: 500px;
            height: 300px;
            margin: 0 auto;
            display: flex;
            border: 2px solid black;
        }
        #container div {
            width: 200px;
            border: 2px black solid;
            background: lightgray;
        }
        #box1 {order: 2;} /* ๋ฐฐ์น˜์ˆœ์„œ ์„ค์ • */
        #box2 {order: 3;} /* ๋ฐฐ์น˜์ˆœ์„œ ์„ค์ • */
        #box3 {order: 1;} /* ๋ฐฐ์น˜์ˆœ์„œ ์„ค์ • */
        h2 {
            font-size: 20px;
            font-weight: bold;
            padding: 20px;
        }
    </style>
</head>
<body>
    <div id="container">
        <div id="box1"><h2>box1</h2></div>
        <div id="box2"><h2>box2</h2></div>
        <div id="box3"><h2>box3</h2></div>
    </div>
</body>
</html>

ํ”Œ๋ ‰์Šค ํ•ญ๋ชฉ ๋ฐฐ์น˜ ์ˆœ์„œ ๋ฐ”๊พธ๊ธฐ

 

 


 

 

๋ฐฐ์šฐ๊ธฐ ์ „์—๋Š” ๋‹จ์ˆœํžˆ ๋ ˆ์ด์•„์›ƒ๋งŒ ์ž˜ ํ•˜๋ฉด ๋˜๊ฒ ์ง€๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ

ํ•ญ๋ชฉ๋“ค์˜ ๋ฐฐ์น˜๋ฐฉ๋ฒ•์ด ์ด๋ ‡๊ฒŒ ๋‹ค์–‘ํ•˜๋‹ค๋‹ˆ ์‹ ๊ธฐํ–ˆ๋‹ค.

 

๋‚˜์ค‘์— ์จ๋จน์–ด์•ผ ๊ฒ ๋‹ค.

 

 


 

 

< ์ฐธ๊ณ  >

Do it! HTML5+CSS3 ์›น ํ‘œ์ค€์˜ ์ •์„

 

 

โ€ป ํ•ด๋‹น ๊ธ€์€ ์Šต๋“ ๋ชฉ์ ์œผ๋กœ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค โ€ป

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€