ํ๋ ์ค ๋ฐ์ค ๋ ์ด์์์ด ๋ฌด์์ธ์ง ์ดํด๋ณด๊ณ
ํ๋ ์ค ๋ฐ์ค ๋ ์ด์์์ ์ฌ์ฉํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์์ฑ๋ค์ ๋ํด์
์์๋ณด๋๋ก ํ์.
ํ๋ ์ค ๋ฐ์ค ๋ ์ด์์
๊ทธ๋ฆฌ๋ ๋ ์ด์์์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ฉฐ
ํ๋ ์ค ๋ฐ์ค๋ฅผ ์ํ๋ ์์น์ ๋ฐฐ์นํ๋ ๊ฒ์ด๋ค.
์ฌ์ ๊ณต๊ฐ์ ๋ฐ๋ผ ๋๋น๋ ๋์ด, ์์น๋ฅผ ์์ ๋กญ๊ฒ ๋ณํํ ์ ์๊ธฐ ๋๋ฌธ์
ํ๋ฉด ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ ์ด์์์ ๋ฐฐ์น๊ฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํด์ผ ํ ๋
ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
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 ์น ํ์ค์ ์ ์
โป ํด๋น ๊ธ์ ์ต๋ ๋ชฉ์ ์ผ๋ก ์์ฑ๋ ๊ธ์ ๋๋ค โป
๋๊ธ