SEB FE / Section1 / Unit6 / HTML/CSS νμ©
π Today I Learned
- μμ΄μ΄νλ μ
- λ μ΄μμ 리μ
- Flexbox
μΉ λλ μ ν리μΌμ΄μ
μ κ°λ°ν λ λ μ΄μμμ λΌλλ₯Ό 그리λ λ¨κ³λ₯Ό μμ΄μ΄νλ μμ΄λΌκ³ νλ€.
μμ£Ό λ¨μνκ², λ μ΄μμκ³Ό μ νμ ꡬ쑰λ₯Ό 보μ¬μ£Όλ μ©λμ΄λ€.
μμ΄μ΄νλ μμ κ°μ₯ ν° λͺ©μ μ, νλ©΄μ μμμ ꡬλΆνλ μΌμ΄λ€.
κ·Έλμ μΈν°νμ΄μ€λ₯Ό κ·Έλ¦ΌμΌλ‘ νννλ μμ΄μ΄νλ μμ΄ μλλΌ, κ° μμμμ μ¬μ©ν μ£Όμ νκ·Έλ₯Ό λ©λͺ¨νλ νμμΌλ‘ μμ΄μ΄νλ μμ μμ±νλ κ²μ΄ μ’λ€.
<div id="container">
<div class="col w10">
<div class="icon">μμ΄μ½ 1</div>
<div class="icon">μμ΄μ½ 2</div>
<div class="icon">μμ΄μ½ 3</div>
</div>
<div class="col w20">
<div class="row h40">μμ1</div>
<div class="row h40">μμ2</div>
<div class="row h20">μμ3</div>
</div>
<div class="col w70">
<div class="row h80">μμ4</div>
<div class="row h20">μμ5</div>
</div>
</div>
HTML λ¬Έμλ κΈ°λ³Έμ μΈ μ€νμΌμ κ°μ§κ³ μλ€. λλλ‘ HTML λ¬Έμκ° κ°λ κΈ°λ³Έ μ€νμΌμ΄, λ μ΄μμμ μ‘λ λ° λ°©ν΄κ° λκΈ°λ νλ€.
<body>
μμκ° κ°μ§ κΈ°λ³Έ μ€νμΌμ μ½κ°μ μ¬λ°±μ΄ μλ€.κΈ°λ³Έ μ€νμΌλ§μ μ κ±°νλ CSS μ½λμ μμ
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
}
Flexboxμ flex(flexible)λ "μ ꡬλΆλ¬μ§λ, μ μ°ν"μ΄λΌλ λ»μ΄λ€.
Flexboxλ‘ λ μ΄μμμ ꡬμ±νλ€λ κ²μ, λ°μ€λ₯Ό μ μ°νκ² λ리거λ μ€μ¬ λ μ΄μμμ μ‘λλ€λ κ²μ΄λ€.
display: flex λ λΆλͺ¨ λ°μ€ μμμ μ μ©ν΄, μμ λ°μ€μ λ°©ν₯κ³Ό ν¬κΈ°λ₯Ό κ²°μ νλ λ μ΄μμ κ΅¬μ± λ°©λ²μ΄λ€.
μ°μ HTMLλ‘ 3κ°μ <div>
μμλ₯Ό μμμΌλ‘ κ°μ§ <main>
μμλ₯Ό μμ±ν΄ λ³Έλ€.
<main>
<div>box1</div>
<div>box2</div>
<div>box3</div>
</main>
κ·Έλ¦¬κ³ κ° μμλ€μ΄ λμ μ 보μ΄λλ‘ CSSλ‘ <main>
μμμλ νλμ μ μ , <div>
μμλ€μλ λΉ¨κ°μ μ€μ μΌλ‘ ν
λ리λ₯Ό μ€μ ν΄μ£Όκ³ , μ 체μ μΌλ‘ margin κ³Ό padding λ 10ν½μ
μ© μ£Όκ² λ€.
main {
border: 1px dotted blue;
}
div {
border: 1px solid red;
}
* {
margin: 10px;
padding: 10px;
}
κ·ΈλΌ λ€μκ³Ό κ°μ νλ©΄μ΄ λμ€λ κ²μ νμΈν μ μλ€.
μ΄μ²λΌ <div>
μμλ€μ λ³λ€λ₯Έ μ€μ μ ν΄μ£Όμ§ μμΌλ©΄ μμͺ½μμλΆν° μΈλ‘λ‘ μ λ ¬λλ©°, κ°λ‘λ‘ λκ² κ³΅κ°μ μ°¨μ§νλ κ²μ νμΈν μ μλ€.
μ΄ μνμμ λΆλͺ¨ μμμΈ <main>
μμμ display: flex
μμ±μ μ μ©ν΄λ³΄μ.
main {
display: flex;
border: 1px dotted blue;
}
...
μ΄μ²λΌ Flexbox μμ±λ€μ νμ©νλ©΄ μμμ μ λ ¬, μμκ° μ°¨μ§νλ 곡κ°μ μ€μ ν΄μ€ μ μλ€. κ·ΈλΌ Flexbox μμ±λ€μ μ΄λ€ κ²μ΄ μλμ§ μμ보μ.
1. flex-direction : μ λ ¬ μΆ μ νκΈ°
flex-direction
μμ±μ λΆλͺ¨ μμμ μ€μ ν΄μ£Όλ μμ±μΌλ‘, μμ μμλ€μ μ λ ¬ν μ λ ¬ μΆμ μ νλ€. μ무 μ€μ λ ν΄μ£Όμ§ μμΌλ©΄ κΈ°λ³Έμ μΌλ‘ κ°λ‘ μ λ ¬μ νλ€.
main {
display: flex;
flex-direction : row;
}
/* λΆλͺ¨ μμμΈ mainμ μμ±νμ¬ μμ μμμΈ divλ€μ μ λ ¬ν μΆμ μ νλ€ */
2. flex-wrap : μ€ λ°κΏ μ€μ νκΈ°
flex-wrap
μμ±μ νμ μμλ€μ ν¬κΈ°κ° μμ μμμ ν¬κΈ°λ₯Ό λμΌλ©΄ μλ μ€ λ°κΏμ ν κ²μΈμ§ μ νλ€. μ€μ ν΄ μ£Όμ§ μμΌλ©΄ μ€ λ°κΏμ νμ§ μλλ€.
main {
display: flex;
**flex-wrap : nowrap;**
}
/* λΆλͺ¨ μμμΈ mainμ μμ±νμ¬ μμ μμμΈ divλ€μ μ€ λ°κΏμ μ΄λ»κ² ν μ§ μ νλ€ */
3. justify-content : μΆ μν λ°©ν₯ μ λ ¬
justify-content
μμ±μ μμ μμλ€μ μΆμ μν λ°©ν₯μΌλ‘ μ΄λ»κ² μ λ ¬ν κ²μΈμ§ μ νλ€. μμλ€μ΄ κ°λ‘λ‘ μ λ ¬λμ΄ μλ€λ©΄ κ°λ‘ λ°©ν₯μΌλ‘ μ΄λ»κ² μ λ ¬ν κ²μΈμ§, μΈλ‘λ‘ μ λ ¬λμ΄ μλ€λ©΄ μΈλ‘ λ°©ν₯μΌλ‘ μ΄λ»κ² μ λ ¬ν κ²μΈμ§ μ νλ μμ±μ΄λ€.
μ£Όμ μμ±κ°μΌλ‘λ flex-start
, flex-end
, center
, space-between
, space-around
μ΄ μλ€.
flex-direction : row
μΈ κ²½μ° β
flex-direction : column
μΈ κ²½μ° βοΈ
4. align-items : μΆ μμ§ λ°©ν₯ μ λ ¬
align-items
μμ±μ μμ μμλ€μ μΆμ μμ§ λ°©ν₯μΌλ‘ μ΄λ»κ² μ λ ¬ν κ²μΈμ§ μ νλ€. μμλ€μ΄ κ°λ‘λ‘ μ λ ¬λμ΄ μλ€λ©΄ μΈλ‘ λ°©ν₯μΌλ‘ μ΄λ»κ² μ λ ¬ν κ²μΈμ§, μΈλ‘λ‘ μ λ ¬λμ΄ μλ€λ©΄ κ°λ‘ λ°©ν₯μΌλ‘ μ΄λ»κ² μ λ ¬ν κ²μΈμ§ μ νλ μμ±μ΄λ€.
μ£Όμ μμ±κ°μΌλ‘λ stretch
, flex-start
, flex-end
, center
, baseline
μ΄ μλ€.
flex-direction : row
μΈ κ²½μ° β
flex-direction : column
μΈ κ²½μ° βοΈ
μ°Έμ‘°
https://habit1014.tistory.com/54
Flexbox κ²μ
https://flexboxfroggy.com/#ko
Grid κ²μ
https://cssgridgarden.com/#ko
λΆλͺ¨ μμμ λ€μ΄κ°λ μμ±λ€μ λν΄ λ°°μ λ€. μ μ¬μ μμ μ νμ©ν μ μκΈ°λ₯Ό. border-box
λ₯Ό μ¬μ©νμ¬ μ’ λ μμ νκ³ νΈλ¦¬νκ² cssλ₯Ό μμ±ν μ μμ λ―νλ€.