Understanding CSS Flexbox
I'm happy to study CSS Flexbox π«
Today's blog, I will test various properties related to flexbox.
What is Flexbox?
- νλ μ€ λ°μ€λ ν λλ μ΄μ μ£ΌμΆμΌλ‘ μ€μ ν΄ μμλ₯Ό λ°°μΉ λ° μ λ ¬νλ 1μ°¨μ λ μ΄μμ λ°©μμ λλ€.
- μμμ λ°°μΉμ μ λ ¬μ νλ μ€ μ»¨ν μ΄λμ νλ μ€ μμ΄ν κ°μ μνΈμμ©μ ν΅ν΄ κ²°μ λ©λλ€.
- νλ μ€ μ»¨ν μ΄λλ? νλ μ€λ°μ€ λ°©μμΌλ‘ λ μ΄μμμ κ²°μ ν μμμ΄κ³ νλ μ€ μμ΄ν μ΄λ? νλ μ€ μ»¨ν μ΄λ λ΄λΆμμ νλ μ€λ°μ€ λ°©μμΌλ‘ λ°°μΉλλ μμμ λλ€.
μ΄λ νλ μ€ λ°μ€λ λ κ°μ μΆμ μ 곡νλλ°μ. κ·Έ μ€ νλμ μΆμ μ£ΌμΆμΌλ‘ ν΄ μμλ₯Ό λ°°μΉνκ² λλ©° κΈ°λ³Έ κ°μ κ°λ‘ λ°©ν₯ (μΌμͺ½μμ μ€λ₯Έμͺ½)μ λλ€.
ul μ°μΈ‘μ flex λΌλ νμκ° μκΈ΄ κ±Έ νμΈ ν μ μλ κ²μ²λΌ ulμ flex containerκ° λλ©° liλ flex item μ λλ€. flex itemμ flex containerμ μ£ΌμΆμ λ°λΌ μΌλ ¬λ‘ μ λ ¬μ΄ λλ κ²μ νμΈν μ μμ΅λλ€.
flex-direction, flex-wrap, flex-flow
*{
box-sizing: border-box;
}
body{
margin: 0;
}
ul{
display: inline-flex;
padding: 0;
list-style-type: none;
height: 200px;
flex-direction: row;
flex-wrap: nowrap;
// flex flow: row-reverse wrap;
}
flex-directionλ νλ μ€ μ»¨ν μ΄λμ μ£ΌμΆμ κ²°μ νλ μμ±μ λλ€. νμ κ°λ‘μΆ, μ΄μ μΈλ‘μΆμ μ£ΌμΆμΌλ‘ νμ£ . μμ±κ° (row, row-reverse, column, column-reverse)λ₯Ό λ³κ²½νλ©° μ£ΌμΆκ³Ό λ°©ν₯μ μλ³Ό μλ μμ΅λλ€.
flex-wrapμ μμ΄ν λ€μ΄ νμ€μ λ°°μΉλλλ‘ ν κ²μΈμ§, λλ μ¬λ¬ νμΌλ‘ λλ ννν κ²μΈμ§ κ²°μ νλ μμ±μ λλ€.
- nowrap: ν μ€ λ°°μΉ
- wrap: μ¬λ¬ νμ κ±Έμ³ λ°°μΉ
flex-flowλ flex-directionκ³Ό flex-wrapμ λμμ μ¬μ©ν μ μλ μμ±μ λλ€.
justify-content
jusfify-contentλ νλ μ€ μμ΄ν λ€μ΄ νλ μ€ λ°μ€μ μ£ΌμΆμ λ°λΌ λ°°μΉλ λ, μμ μ¬μ΄μ 곡κ°μ λΆλ°°νλ λ°©μμ κ²°μ ν©λλ€.
space-aroundλ λͺ¨λ μμκ° λμΌν μ¬λ°±μ κ°λλ‘ λ°°μΉν©λλ€.
space-betweenμ μ£ΌμΆμμ μΌμ ν κ°κ²©μ λ μ± μλ μ λ ¬ λ°°μΉν©λλ€.
space-evenlyλ λͺ¨λ μμ μ¬μ΄μ κ°κ²©μ λμΌνκ² μ μ§ν΄ λ°°μΉν©λλ€.
align-items, align-self, align-content
align-itemsλ νλ μ€ μ»¨ν μ΄λμ κ΅μ°¨μΆ μμμ νλ μ€ μμ΄ν λ€μ΄ μ΄λ€ μμΌλ‘ μ λ ¬λ κ²μΈμ§λ₯Ό κ²°μ ν©λλ€.
ul{
display: flex;
padding: 0;
list-style-type: none;
height: 200px;
border: 5px solid green;
align-items: center;
}
li:nth-child(3){
align-self: flex-start;
}
ulμ align-items: centerλ‘ μ€μ νκ³ 3λ²μ§Έ μμμλ§ flex-startλ‘ μ€μ νλ©΄... Orangeλ§ μμͺ½μΌλ‘ μ¬λΌκ° λͺ¨μ΅λ νμΈν μ μμ΅λλ€.
flex-grow, flex-shrink
flex-growλ νλ μ€ μμ΄ν μ΄ κΈ°λ³Έ ν¬κΈ°λ³΄λ€ λ μ»€μ§ μ μλμ§λ₯Ό κ²°μ νκ³ , νλ μ€ μ»¨ν μ΄λ λ΄λΆμμ ν λΉλ°μ μ μλ 곡κ°μ μλμ μΌλ‘ μ μν μ μλ μμ±μ λλ€.
flex-shrinkλ νλ μ€ μμ΄ν μ΄ κΈ°λ³Έ ν¬κΈ°λͺ¨λ€ λ μμμ§ μ μλμ§λ₯Ό κ²°μ νκ³ , νλ μ€ μ»¨ν μ΄λ λ΄λΆμμ ν λΉλ°μ μ μλ 곡κ°μ μλμ μΌλ‘ μ μν μ μλ μμ±μ λλ€.
order
νλ μ€ μμ΄ν μ λ°°μΉ μμλ₯Ό μ€μ ν μ μμΌλ©° μ§μ ν μ«μμ λ§μΆ° μ€λ¦μ°¨μμΌλ‘ λ°°μΉκ° λλ€. μ΄λ μ½λμ μν₯μ λΌμΉλ κ²μ΄ μλ 보μ¬μ§λ μμμλ§ μν₯μ μ€λλ€.
li:nth-child(1){
order: 5;
}
li:nth-child(2){
order: 4;
}
li:nth-child(3){
order: 3;
}
li:nth-child(4){
order: 2;
}
li:nth-child(5){
order: 1;
}
Hope you'll enjoy playing with flexbox! π