Flexbox Layout
1. κ°μ
Flexbox Layoutμ λͺ¨λ μΉμ μνμ¬ μ μλ κΈ°μ‘΄ layoutλ³΄λ€ λ μΈλ ¨λ λ°©μμ λμ¦μ λΆν©νκΈ° μν CSS3μ μλ‘μ΄ layoutλ°©μμ΄λ€. νλμ€ λ°μ€ λ μ΄μμμ λΉκ΅μ μ΅κ·Όμ λ±μ₯ν κ°λ μ΄λ―λ‘ κΈ°μ‘΄μ CSS μμ± μΈμ μλ‘ κ³΅λΆν΄μΌ ν μμ±μ΄ μλ€.
2. μ©μ΄ μ 리

νλ μ€ μ»¨ν μ΄λ(λΆλͺ¨ λ°μ€): νλ μ€ λ°μ€ λ μ΄μμμ μ μ©ν λμμ λ¬Άλ μμμ΄λ€. μμ κ·Έλ¦Όμμλ λ ΈλΌμ λ°°κ²½μ κ°μ§ ν° λ°μ€κ° νλ μ€ μ»¨ν μ΄λμ ν΄λΉλλ€.
νλ μ€ νλͺ©(μμ λ°μ€, flex-item): νλ μ€ λ°μ€ λ μ΄μμμ μ μ©ν λμμ΄λ€. μμ κ·Έλ¦Όμμλ νμμ λ°°κ²½μ κ°μ§ μμ λ°μ€κ° νλ μ€ νλͺ©μ ν΄λΉλλ€.
μ£ΌμΆ(main axis): νλ μ€ μ»¨ν μ΄λ μμμ νλ μ€ νλͺ©μ λ°°μΉνλ κΈ°λ³Έ λ°©ν₯μ΄λ€. κΈ°λ³Έμ μΌλ‘ μΌμͺ½μμ μ€λ₯Έμͺ½μ΄λ©° μν λ°©ν₯μΌλ‘ λ°°μΉνλ€. νλ μ€ νλͺ©μ λ°°μΉκ° μμλλ μμΉλ₯Ό 'μ£ΌμΆ μμμ ', λλλ μμΉλ₯Ό 'μ£ΌμΆ λμ 'μ΄λΌκ³ νλ€.
κ΅μ°¨μΆ(cross axis): μ£ΌμΆκ³Ό κ΅μ°¨νλ λ°©ν₯μ λ§νλ©° κΈ°λ³Έμ μΌλ‘ μμμ μλλ‘ λ°°μΉνλ€. νλ μ€ νλͺ©μ λ°°μΉκ° μμλλ μμΉλ₯Ό 'κ΅μ°¨μΆ μμμ ', λλλ μμΉλ₯Ό 'κ΅μ°¨μΆ λμ 'μ΄λΌκ³ νλ€.
3. Usage
νλ μ€ λ°μ€ λ μ΄μμμ λ§λ€κΈ° μν΄μλ λ¨Όμ μΉ μ½ν μΈ λ₯Ό νλ μ€ μ»¨ν μ΄λλ‘ λ¬Άμ΄ μ£Όμ΄μΌ νλ€. μ¦, λ°°μΉν μΉ μμκ° μλ€λ©΄ κ·Έ μμλ₯Ό κ°μΈλ λΆλͺ¨ μμλ₯Ό λ§λ€κ³ , κ·Έ λΆλͺ¨ μμλ₯Ό νλ μ€ μ»¨ν μ΄λλ‘ λ§λ€μ΄μΌ νλ€.
λΆλͺ¨ μμμ display μμ±μ flexλ₯Ό μ§μ νλ©΄ νλ μ€ μ»¨ν μ΄λκ° λ§λ€μ΄μ§λ€.
.flex-container {
display: flex;
}
λΆλͺ¨ μμκ° inline μμμΈ κ²½μ° inline-flexμ μ§μ νλ€.
.flex-container {
display: inline-flex;
}
Flexbox Layoutλ₯Ό μ¬μ©νκΈ° μν΄μλ flex λλ inline-flexλ λΆλͺ¨ μμμ λ°λμ μ§μ ν΄μΌνλ©° μμ μμλ μλμ μΌλ‘ flex itemμ΄ λλ€.
4. Flexbox container μμ±
4.1 flex-direction
νλ μ€ μ»¨ν μ΄λ μμμ νλ μ€ νλͺ©μ λ°°μΉνλ μ£ΌμΆ(main axis) λ°©ν₯μ μ€μ νλ€.
μλλ flex-direction
μ νλ‘νΌν°κ°κ³Ό μ€λͺ
μ΄λ€.
row
μ£ΌμΆμ κ°λ‘λ‘ μ§μ νκ³ μΌμͺ½μμ μ€λ₯Έμͺ½μΌλ‘ λ°°μΉνλ€.(κΈ°λ³Έκ°)
row-reverse
μ£ΌμΆμ κ°λ‘λ‘ μ§μ νκ³ λ°λλ‘ μ€λ₯Έμͺ½μμ μΌμͺ½μΌλ‘ λ°°μΉνλ€.
column
μ£ΌμΆμ μΈλ‘λ‘ μ§μ νκ³ μμͺ½μμ μλμͺ½μΌλ‘ λ°°μΉνλ€.
column-reverse
μ£ΌμΆμ μΈλ‘λ‘ μ§μ νκ³ μλμͺ½μμ μμͺ½μΌλ‘ λ°°μΉνλ€.
<!DOCTYPE html>
<html>
<head>
<style>
div {
font-size: 20px;
font-weight: 700;
}
.box {
background-color: yellow;
width: 60px;
height: 60px;
text-align: center;
line-height: 60px;
margin: 10px;
}
.row {
display: flex;
flex-direction: row;
}
.row-reverse {
display: flex;
flex-direction: row-reverse;
}
.column {
display: flex;
flex-direction: column;
}
.column-reverse {
display: flex;
flex-direction: column-reverse;
}
</style>
</head>
<body>
<div>
row
<div class="row">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
</div>
</div>
<div>
row-reverse
<div class="row-reverse">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
</div>
</div>
<div>
column
<div class="column">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
</div>
</div>
<div>
column-reverse
<div class="column-reverse">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
</div>
</div>
</body>
</html>

4-2 flex-wrap
flex-wrap
νλ‘νΌν°λ νλ μ€ μ»¨ν
μ΄λ λλΉλ³΄λ€ λ§μ νλ μ€ νλͺ©μ΄ μμ κ²½μ° μ€μ λ°κΏμ§ μ¬λΆλ₯Ό μ§μ νλ€.
μλλ flex-wrap
μμ μ¬μ©ν μ μλ νλ‘νΌν°κ°κ³Ό μ€λͺ
μ΄λ€.
nowrap
νλ μ€ νλͺ©μ ν μ€μ νμνλ€.(κΈ°λ³Έκ°)
warp
νλ μ€ νλͺ©μ μ¬λ¬ μ€μ νμνλ€.
wrap-reverse
νλ μ€ νλͺ©μ μ¬λ¬ μ€μ νμνλ, μμμ κ³Ό λμ μ΄ λ°λλ€.
<!DOCTYPE html>
<html>
<head>
<style>
div {
font-size: 20px;
font-weight: 700;
}
.box {
background-color: yellow;
width: 200px;
height: 60px;
text-align: center;
line-height: 60px;
margin: 10px;
}
.nowrap {
display: flex;
flex-wrap: nowrap;
}
.wrap {
display: flex;
flex-wrap: wrap;
}
.wrap-reverse {
display: flex;
flex-wrap: wrap-reverse;
}
</style>
</head>
<body>
<div>
nowrap
<div class="nowrap">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
<div class="box">5</div>
<div class="box">6</div>
<div class="box">7</div>
</div>
</div>
<div>
wrap
<div class="wrap">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
<div class="box">5</div>
<div class="box">6</div>
<div class="box">7</div>
</div>
</div>
<div>
wrap-reverse
<div class="wrap-reverse">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
<div class="box">5</div>
<div class="box">6</div>
<div class="box">7</div>
</div>
</div>
</body>
</html>

4-3. flex-flow
flex-flow
νλ‘νΌν°λ flex-direction
νλ‘νΌν°μ flex-wrap
νλ‘νΌν°λ₯Ό λμμ μ€μ νκΈ° μν shorthandμ΄λ€. κΈ°λ³Έκ°μ row nowarp
μ΄λ€.
μ¬μ©λ² flex-flow: <flex-direction> || <flex-wrap>;
4-4 justify-content
justify-content
νλ‘νΌν°λ μ£ΌμΆ(main axis)μ κΈ°μ€μΌλ‘ flex itemμ μν μ λ ¬ λ°©λ²μ μ§μ νλ€.
flex-direction: column;
μΌλ‘ μΈν΄ μ£ΌμΆμ΄ λ°λκ² λλ κ²½μ°λ₯Ό μ‘°μ¬νμ.
μλλ justify-content
μ νλ‘νΌν°κ°κ³Ό μ€λͺ
μ΄λ€.
flex-start
μ£ΌμΆμ μμμ μ λ§μΆ° λ°°μΉνλ€.
flex-end
μ£ΌμΆμ λμ μ λ§μΆ° λ°°μΉνλ€.
center
μ£ΌμΆμ μ€μμ λ§μΆ° λ°°μΉνλ€.
space-between
첫 λ²μ¬ νλͺ©κ³Ό λ νλͺ©μ μ£ΌμΆμ μμμ κ³Ό λμ μ λ°°μΉν ν λλ¨Έμ§ νλͺ©μ κ·Έ μ¬μ΄μ κ°μ κ°κ²©μΌλ‘ λ°°μΉνλ€.
space-around
λͺ¨λ νλͺ©μ μ£ΌμΆμ κ°μ κ°κ²©μΌλ‘ λ°°μΉνλ€.
<!DOCTYPE html>
<html>
<head>
<style>
div {
font-size: 20px;
font-weight: 700;
}
.parents {
margin-bottom: 10px;
}
.flex-container {
background-color: green;
}
.box {
background-color: yellow;
width: 200px;
height: 60px;
text-align: center;
line-height: 60px;
margin: 10px;
}
.flex-start {
display: flex;
justify-content: flex-start;
}
.flex-end {
display: flex;
justify-content: flex-end;
}
.center {
display: flex;
justify-content: center;
}
.space-between {
display: flex;
justify-content: space-between;
}
.space-around {
display: flex;
justify-content: space-around;
}
</style>
</head>
<body>
<div class="parents">
flex-start
<div class="flex-start flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
flex-end
<div class="flex-end flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
center
<div class="center flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
space-between
<div class="space-between flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
space-around
<div class="space-around flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
</body>
</html>

4-5 align-items
align-items
νλ‘νΌν°λ μμ§ λ°©ν₯(cross axis)μ κΈ°μ€μΌλ‘ flex itemμ μ λ ¬νλ€. align-items
νλ‘νΌν°λ λͺ¨λ flex-itemμ μ μ©λλ€.
μλλ align-items
μ νλ‘νΌν°κ°κ³Ό μ€λͺ
μ΄λ€.
flex-start
κ΅μ°¨μΆμ μμμ μ λ§μΆ° λ°°μΉνλ€.
flex-end
κ΅μ°¨μΆμ λμ μ λ§μΆ° λ°°μΉνλ€.
center
κ΅μ°¨μΆμ μ€μμ λ°°μΉνλ€.
baseline
κ΅μ°¨μΆμ λ¬Έμ κΈ°μ€μ μ λ§μΆ° λ°°μΉνλ€.
stretch
νλ μ€ νλͺ©μ λλ € κ΅μ°¨μΆμ κ°λ μ°¨κ² λ°°μΉνλ€.
<!DOCTYPE html>
<html>
<head>
<style>
div {
font-size: 20px;
font-weight: 700;
}
.parents {
margin-bottom: 10px;
background-color: green;
color: white;
}
.flex-container {
min-height: 120px;
border-top: 2px solid black;
padding: 0;
margin: 0;
color: green;
}
.box {
background-color: yellow;
width: 200px;
text-align: center;
line-height: 60px;
margin: 0px 10px;
}
.flex-start {
display: flex;
align-items: flex-start;
}
.flex-end {
display: flex;
align-items: flex-end;
}
.center {
display: flex;
align-items: center;
}
.baseline {
display: flex;
align-items: baseline;
}
.stretch {
display: flex;
align-items: stretch;
}
</style>
</head>
<body>
<div class="parents">
flex-start
<div class="flex-start flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
flex-end
<div class="flex-end flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
center
<div class="center flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
baseline
<div class="baseline flex-container">
<div class="box" style="padding-top: 10px">1</div>
<div class="box" style="height: 80px">2</div>
<div class="box" style="font-size: 32px">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
stretch
<div class="stretch flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
</body>
</html>

4-6. align-content
flex containerμ cross axisλ₯Ό κΈ°μ€μΌλ‘ flex itemμ μμ§ μ λ ¬νλ€. μ°Έκ³ λ‘ justify-content
νλ‘νΌν°λ flex containerμ main aixsλ₯Ό κΈ°μ€μΌλ‘ flex itemμ μν μ λ ¬νλ€.
μ¦, μ£ΌμΆμμ μ€ λ°κΏμ΄ μ겨μ flex itemμ μ¬λ¬ μ€λ‘ νμν λ align-content
νλ‘νΌν°λ₯Ό ν΅ν΄ κ΅μ°¨μΆμμ flex itemμ κ°κ²©μ μ§μ ν μ μλ€.
μλλ align-content
μ νλ‘νΌν°κ°κ³Ό μ€λͺ
μ΄λ€.
flex-start
κ΅μ°¨μΆμ μμμ μμ λ§μΆ° λ°°μΉνλ€.
flex-end
κ΅μ°¨μΆμ λμ μ λ§μΆ° λ°°μΉνλ€.
center
κ΅μ°¨μΆμ μ€μμ λ§μΆ° λ°°μΉνλ€.
space-between
첫 λ²μ§Έ νλͺ©κ³Ό λ νλͺ©μ κ΅μ°¨μΆμ μμμ κ³Ό λμ μ λ§μΆκ³ λλ¨Έμ§ νλͺ©μ κ·Έ μ¬μ΄μ κ°μ κ°κ²©μΌλ‘ λ°°μΉνλ€.
space-around
λͺ¨λ νλͺ©μ κ΅μ°¨μΆμ κ°μ κ°κ²©μΌλ‘ λ°°μΉνλ€.
stretch
νλ μ€ νλͺ©μ λλ €μ κ΅μ°¨μΆμ κ°λ μ°¨κ² λ°°μΉνλ€.
<!DOCTYPE html>
<html>
<head>
<style>
div {
font-size: 20px;
font-weight: 700;
}
.parents {
margin-bottom: 10px;
background-color: green;
color: white;
}
.flex-container {
min-height: 160px;
border-top: 2px solid black;
padding: 0;
margin: 0;
color: green;
}
.box {
background-color: yellow;
width: 200px;
text-align: center;
line-height: 60px;
margin: 0px 10px;
}
.box:nth-child(1) {
margin-bottom: 10px;
}
.box:nth-child(2) {
margin-bottom: 10px;
}
.flex-start {
display: flex;
flex-wrap: wrap;
align-content: flex-start;
}
.flex-end {
display: flex;
flex-wrap: wrap;
align-content: flex-end;
}
.center {
display: flex;
flex-wrap: wrap;
align-content: center;
}
.sapce-between {
display: flex;
flex-wrap: wrap;
align-content: space-between;
}
.space-around {
display: flex;
flex-wrap: wrap;
align-content: space-around;
}
.stretch {
display: flex;
flex-wrap: wrap;
align-content: stretch;
}
</style>
</head>
<body>
<div class="parents">
flex-start
<div class="flex-start flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
flex-end
<div class="flex-end flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
center
<div class="center flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
sapce-between
<div class="sapce-between flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
space-around
<div class="space-around flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
<div class="parents">
stretch
<div class="stretch flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</div>
</body>
</html>


5. Flexbox item μμ±
5-1. order
flex itemμ λ°°μΉ μμλ₯Ό μ§μ νλ€. HTML μ½λλ₯Ό λ³κ²½νμ§ μκ³ order νλ‘νΌν°κ°μ μ§μ νλ κ²μΌλ‘ κ°λ¨ν μ¬λ°°μΉν μ μλ€. κΈ°λ³Έ λ°°μΉ μμλ flex containerμ μΆκ°λ μμμ΄λ€. κΈ°λ³Έκ°μ 0μ΄λ€.
μ¬μ©λ² order: <μ μκ°>
.flex-item {
order: 2;
}
5-2. flex-grow
flex itemμ λλΉμ λν νλ μΈμλ₯Ό μ§μ νλ€. κΈ°λ³Έκ°μ 0μ΄κ³ μμκ°μ 무ν¨νλ€.
<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
display: flex;
justify-content: space-around;
}
.box {
height: 120px;
background-color: yellow;
}
.box:not(:last-child) {
margin-right: 10px;
}
.box:not(:nth-child(2)) {
flex-grow: 1;
}
.box:nth-child(2) {
flex-grow: 3;
}
</style>
</head>
<body>
<div class="flex-container">
<div class="box">1</div>
<div class="box">2 / flex-grow: 3</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
</body>
</html>

5-3. flex-shrink
flex itemμ λλΉμ λν μΆμ μΈμλ₯Ό μ§μ νλ€. κΈ°λ³Έκ°μ 1μ΄κ³ μμκ°μ 무ν¨νλ€. 0λ₯Ό μ§μ νλ©΄ μΆμκ° ν΄μ λμ΄ μλμ λλΉλ₯Ό μ μ§νλ€.
<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
display: flex;
justify-content: space-around;
}
.box {
width: 300px;
height: 120px;
background-color: yellow;
}
.box:not(:last-child) {
margin-right: 10px;
}
.box:nth-child(2) {
flex-shrink: 0;
}
.box:nth-child(3) {
flex-shrink: 2;
}
</style>
</head>
<body>
<div class="flex-container">
<div class="box">1</div>
<div class="box">2 / flex-shrink: 0</div>
<div class="box">3 / flex-shrink: 2</div>
<div class="box">4</div>
</div>
</body>
</html>

5-4. flex-basis
flex itemμ λλΉ κΈ°λ³Έκ°μ px, % λ±μ λ¨μλ‘ μ§μ νλ€. κΈ°λ³Έκ°μ autoμ΄λ€.
<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
display: flex;
justify-content: space-around;
}
.box {
width: 100px;
height: 120px;
background-color: yellow;
}
.box:not(:last-child) {
margin-right: 10px;
}
.box:nth-child(2) {
flex-basis: 500px;
}
.box:nth-child(3) {
flex-basis: 50%;
}
</style>
</head>
<body>
<div class="flex-container">
<div class="box">1 / flex-basis: auto => 100px</div>
<div class="box">2 / flex-basis: 500px</div>
<div class="box">3 / flex-basis: 50%</div>
<div class="box">4 / flex-basis: auto => 100px</div>
</div>
</body>
</html>

5-5. flex
flex-grow
, flex-shrink
, flex-basis
νλ‘νΌν°μ shorthandμ΄λ€. κΈ°λ³Έκ°μ 0 1 auto
μ΄λ€.
W3Cμμλ μ΄ νλ‘νΌν°λ₯Ό μ¬μ©νλ κ² λ³΄λ€ κ°λ³μ μΌλ‘ κΈ°μ νλ κ²μ μΆμ²νκ³ μλ€.
5-6. align-self
align-item
μμ±μ κ΅μ°¨μΆμ κΈ°μ€μΌλ‘ νλ μ€ νλͺ©μ μ λ ¬ λ°©λ²μ κ²°μ νμ§λ§ κ·Έμ€μμ νΉμ νλͺ©λ§ μ§μ νκ³ μΆλ€λ©΄ align-self
μμ±μ μ¬μ©νλ€. align-item
νλ‘νΌν°λ³΄λ€ μ°μ νμ¬ κ°λ³ flex itemμ μ λ ¬νλ€.
align-self
νλ‘νΌν°μμ μ¬μ©ν κ°μ align-items
νλ‘νΌν°μμ μ¬μ©νλ κ°κ³Ό κ°λ€.
<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
display: flex;
justify-content: space-around;
height: 600px;
background-color: aliceblue;
}
.box {
width: 100px;
padding: 60px;
background-color: yellow;
}
.box:not(:last-child) {
margin-right: 10px;
}
.box:nth-child(1) {
align-self: flex-start;
}
.box:nth-child(2) {
align-self: flex-end;
}
.box:nth-child(3) {
align-self: center;
}
.box:nth-child(4) {
align-self: stretch;
}
</style>
</head>
<body>
<div class="flex-container">
<div class="box">1 / align-self: flex-start</div>
<div class="box">2 / align-self: flex-end</div>
<div class="box">3 / align-self: center</div>
<div class="box">4 / align-self: stretch</div>
</div>
</body>
</html>

6. Conclusion
flex-grow
λ μ²μ μ¨λ³΄λ νλ‘νΌν°μ΄λ€. κ΅μ₯ν μ κΈ°νλ€. μμ μ½λλ₯Ό μλ₯Όλ€μ΄ box ν΄λμ€λ₯Ό κ°μ§ divλ€μ λλΉλ₯Ό 100%λ‘ μ§μ νμ§ μμλflex-grow
λ₯Ό 1λ‘ μ§μ νλ©΄ μ 체 λλΉλ₯Ό λͺ¨λ λλ±νκ² μ°¨μ§νκ² λλ€. κΈ°λ³Έκ°μ 0 μ΄λ―λ‘ λ± μμ μ μμλ§νΌλ§ λλΉλ₯Ό μ°¨μ§νλ κ² κ°λ€. λΏλ§ μλλΌflex-shrink
κ³Όflex-basis
λ μ΄λ² 곡λΆλ₯Ό νλ©΄μ μ²μ μ¨λ³΄λ νλ‘νΌν°μλ€.flex
λgrid
λ₯Ό λ°°μ°κΈ° μ κΉμ§ μμ£Ό μ¬μ©νμλ€. νμ§λ§grid
λ₯Ό λ°°μ°κ³ λμλ μ¬μ©λΉλκ° λ§μ΄ μ€μλ€. λ κ°μ νλ‘νΌν° λͺ¨λ CSSμμ μ€μν λ΄μ©μ΄λ νμν μν©μ λ§μΆ° μ μ¬μ©νλλ‘ νμ.
μ°Έκ³
poiemaweb 2-20 νλ μ€ λ°μ€ λ μ΄μμ λμ - HTML + CSS + μλ°μ€ν¬λ¦½νΈ μΉ νμ€μ μ μ
π 2022-07-24
Last updated