TIL12-HTML&CSS_7_flex

μ΄λ™ν•˜Β·2020λ…„ 12μ›” 23일
0

HTML, CSS

λͺ©λ‘ 보기
7/7
post-thumbnail

πŸ’΅ Flex πŸ’΅

λ ˆμ΄μ•„μ›ƒ 배치 μ „μš© κΈ°λŠ₯으둜 κ³ μ•ˆλœ μ—˜λ¦¬λ¨ΌνŠΈλ“€μ˜ ν¬κΈ°λ‚˜ μœ„μΉ˜λ₯Ό μ‰½κ²Œ μž‘μ•„μ£ΌλŠ” 도ꡬ

πŸ“ flexλ₯Ό μ΄μš©ν•˜λ©΄ λ ˆμ΄μ•„μ›ƒμ„ 맀우 효과적으둜 ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


Flex λ ˆμ΄μ•„μ›ƒμ„ λ§Œλ“€κΈ° μœ„ν•œ 기본적인 HTML ꡬ쑰

<div class="container">
	<div class="item">helloflex</div>
	<div class="item">abc</div>
	<div class="item">helloflex</div>
</div>
  • λΆ€λͺ¨ μš”μ†ŒμΈ div.container : Flex Container(ν”Œλ ‰μŠ€ μ»¨ν…Œμ΄λ„ˆ)
  • μžμ‹ μš”μ†ŒμΈ div.item : Flex Item(ν”Œλ ‰μŠ€ μ•„μ΄ν…œ)

    μ»¨ν…Œμ΄λ„ˆκ°€ Flex의 영ν–₯을 λ°›λŠ” 전체 곡간이고, μ„€μ •λœ 속성에 따라 각각의 μ•„μ΄ν…œλ“€μ΄ μ–΄λ–€ ν˜•νƒœλ‘œ λ°°μΉ˜λ˜λŠ” 것


Flex 속성

  1. μ»¨ν…Œμ΄λ„ˆμ— μ μš©ν•˜λŠ” 속성
  2. μ•„μ΄ν…œμ— μ μš©ν•˜λŠ” 속성
  3. μ»¨ν…Œμ΄λ„ˆμ— μ μš©ν•˜λŠ” 속성

    1. display

    dispaly : flexλ₯Ό μ‚¬μš©ν•˜λ©΄ μ•„μ΄ν…œλ“€μ΄ μˆ˜ν‰μ„ λ©”μΈμΆ•μœΌλ‘œ κ°€λ‘œλ‘œ λ°°μΉ˜λ©λ‹ˆλ‹€.

    • μ•„μ΄ν…œλ“€μ΄ 배치된 λ°©ν–₯을 메인좕, 메인좕(main axis)κ³Ό λ°˜λŒ€μΈ 좕을 ꡐ차좕(cross axis)이라고 ν•©λ‹ˆλ‹€.

    display : inline-flex도 μžˆμŠ΅λ‹ˆλ‹€.
    flex와 inline-flex의 μ°¨μ΄λŠ” μ»¨ν…Œμ΄λ„ˆμ™€ μ•„μ΄ν…œ 관계가 μ•„λ‹ˆλΌ μ»¨ν…Œμ΄λ„ˆμ™€ μ£Όλ³€ μš”μ†Œλ“€κ³Όμ˜ 관계에 관련이 μžˆμŠ΅λ‹ˆλ‹€.
    flexλŠ” block μ†μ„±μ²˜λŸΌ, inline-felxλŠ” inline-flex μ†μ„±μ²˜λŸΌ λ™μž‘ν•©λ‹ˆλ‹€.

    2. flex-direction : 배치 λ°©ν–₯

    μ•„μ΄ν…œλ“€μ΄ λ°°μΉ˜λ˜λŠ” μΆ•μ˜ λ°©ν–₯을 κ²°μ •ν•˜λŠ” 속성

    λ©”μΈμΆ•μ˜ λ°©ν–₯을 κ°€λ‘œλ‘œ ν•  것인지 μ„Έλ‘œλ‘œ ν•  것인지λ₯Ό μ •ν•΄μ€λ‹ˆλ‹€.

    flex-direction: row;
    : κΈ°λ³Έκ°’μž…λ‹ˆλ‹€. μ•„μ΄ν…œλ“€μ΄ κ°€λ‘œ λ°©ν–₯으둜 λ°°μΉ˜λ©λ‹ˆλ‹€. πŸ‘‰

    flex-direction: row-reverse;
    : μ•„μ΄ν…œλ“€μ΄ μ—­μˆœ κ°€λ‘œ λ°©ν–₯으둜 λ°°μΉ˜λ©λ‹ˆλ‹€. πŸ‘ˆ

    flex-direction: column;
    : μ•„μ΄ν…œλ“€μ΄ μ„Έλ‘œ λ°©ν–₯으둜 λ°°μΉ˜λ©λ‹ˆλ‹€. πŸ‘‡

    flex-direction: column-reverse;
    : μ•„μ΄ν…œλ“€μ΄ μ—¬μˆœ μ„Έλ‘œ λ°©ν–₯으둜 λ°°μΉ˜λ©λ‹ˆλ‹€. πŸ‘†

    3. flex-wrap : μ€„λ„˜κΉ€

    μ»¨ν…Œμ΄λ„ˆκ°€ 더 이상 μ•„μ΄ν…œλ“€μ„ ν•œ 쀄에 담을 μ—¬μœ  곡간이 없을 λ•Œ
    μ•„μ΄ν…œ μ€„λ°”κΏˆμ„ μ–΄λ–»κ²Œ 할지 κ²°μ •ν•˜λŠ” 속성

    flex-wrap : nowrap;
    : μ•„μ΄ν…œλ“€μ΄ μ€„λ°”κΏˆμ„ ν•˜μ§€ μ•Šκ³  ν•œ 쀄에 μž…λ ₯λ©λ‹ˆλ‹€.

    flex-wrap: wrap;
    : μ•„μ΄ν…œλ“€μ΄ μžλ™μ μœΌλ‘œ μ€„λ°”κΏˆμ„ ν•©λ‹ˆλ‹€.

    flex-wrap: wrap-reverse;
    : μ•„μ΄ν…œλ“€μ΄ μ—­μˆœμœΌλ‘œ μ€„λ°”κΏˆμ„ ν•©λ‹ˆλ‹€.

    4. flex-flow

    flex-directionκ³Ό flex-wrap을 ν•œκΊΌλ²ˆμ— 지정할 수 μžˆλŠ” 단좕 속성

    flex-direction, flex-wrap의 순으둜 ν•œ μΉΈ λ–Όκ³  μ¨μ£Όμ‹œλ©΄ λ©λ‹ˆλ‹€.

    5. justify-content : 메인좕 λ°©ν–₯ μ •λ ¬

    메인좕 λ°©ν–₯으둜 μ•„μ΄ν…œμ„λ“€ μ •λ ¬ν•˜λŠ” 속성

    justify-content: flex-start;
    : μ•„μ΄ν…œλ“€μ„ μ‹œμž‘μ μœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

    justify-content: flex-end;
    : μ•„μ΄ν…œλ“€μ„ 끝점으둜 μ •λ ¬ν•©λ‹ˆλ‹€.

    justify-content: center;
    : μ•„μ΄ν…œλ“€μ„ κ°€μš΄λ°λ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

    justify-content: space-between;
    : μ•„μ΄ν…œλ“€μ˜ 사이에 λ™μΌν•œ 간격을 λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€.

    justify-content: space-around;
    : μ΄ν…œλ“€μ˜ λ‘˜λ ˆμ— λ™μΌν•œ 간격을 λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€.

    justify-content: space-evenly;
    : μ•„μ΄ν…œλ“€μ˜ 사이와 μ–‘ 끝에 λ™μΌν•œ 간격을 λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€.

    ❗️space-around와 space-evenly의 차이점
    : space-aroundλŠ” μ•„μ΄ν…œμ— λ‘˜λ ˆλ₯Ό λ§Œλ“€κ³  κ·Έ λ‘˜λ ˆμ— λ™μΌν•œ 간격을 λ§Œλ“€μ–΄μ£ΌλŠ” 것이기 λ•Œλ¬Έμ— μ€‘μ•™μ˜ 간격은 Aμ•„μ΄ν…œμ˜ 였λ₯Έμͺ½ 간격과 Bμ•„μ΄ν…œμ˜ μ™Όμͺ½ 간격이 겹쳐 λ‚˜μ˜€μ§€λ§Œ 끝에 μžˆλŠ” μ•„μ΄ν…œμ˜ 끝뢀뢄은 κ²ΉμΉ˜λŠ” 뢀뢄이 μ—†μ–΄ μƒλŒ€μ μœΌλ‘œ 간격이 쒁게 λ³΄μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ space-evenlyλŠ” μ „μ²΄μ μœΌλ‘œ λ™μΌν•œ 간격을 μ£ΌκΈ° λ•Œλ¬Έμ— λͺ¨λ“  간격이 λ™μΌν•˜κ²Œ λ‚˜μ˜΅λ‹ˆλ‹€.

    6. align-items : μˆ˜μ§μΆ• λ°©ν–₯ μ •λ ¬

    μˆ˜μ§μΆ• λ°©ν–₯으둜 μ•„μ΄ν…œμ„λ“€ μ •λ ¬ν•˜λŠ” 속성

    align-items: stretch;
    : μ•„μ΄ν…œλ“€μ΄ μˆ˜μ§μΆ• λ°©ν–₯으둜 λκΉŒμ§€ λŠ˜μ–΄λ‚©λ‹ˆλ‹€.

    align-items: flex-start;
    : μ•„μ΄ν…œλ“€μ„ μ‹œμž‘μ μœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

    align-items: flex-end;
    : μ•„μ΄ν…œλ“€μ„ 끝으둜 μ •λ ¬ν•©λ‹ˆλ‹€.

    align-items: center;
    : μ•„μ΄ν…œλ“€μ„ κ°€μš΄λ°λ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

    align-items: baseline;
    : μ•„μ΄ν…œλ“€μ„ ν…μŠ€νŠΈ 베이슀라인 κΈ°μ€€μœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

    7. align-content : μ—¬λŸ¬ ν–‰ μ •λ ¬

    flex-wrap: wrap;이 μ„€μ •λœ μƒνƒœμ—μ„œ, μ•„μ΄ν…œλ“€μ˜ 행이 2쀄 이상 λ˜μ—ˆμ„ λ•Œμ˜ μˆ˜μ§μΆ• λ°©ν–₯ 정렬을 κ²°μ •ν•˜λŠ” 속성

    align-content: stretch;
    : 두 μ€„μ˜ μ•„μ΄ν…œλ“€μ΄ μˆ˜μ§μΆ• λ°©ν–₯으둜 λκΉŒμ§€ λŠ˜μ–΄λ‚©λ‹ˆλ‹€.

    align-content: flex-start;
    : 두 μ€„μ˜ μ•„μ΄ν…œλ“€μ„ μ‹œμž‘μ μœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

    align-content: flex-end;
    : 두 μ€„μ˜ μ•„μ΄ν…œλ“€μ„ 끝으둜 μ •λ ¬ν•©λ‹ˆλ‹€.

    align-content: center;
    : 두 μ€„μ˜ μ•„μ΄ν…œλ“€μ„ κ°€μš΄λ°λ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

    align-content: space-between;
    : 두 μ€„μ˜ μ•„μ΄ν…œλ“€μ— λ™μΌν•œ 간격을 λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€.

    align-content: space-around;
    : 두 μ€„μ˜ μ•„μ΄ν…œλ“€μ˜ λ‘˜λ ˆμ— λ™μΌν•œ 간격을 λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€.

    align-content: space-evenly;
    : 두 μ€„μ˜ μ•„μ΄ν…œλ“€μ˜ 사이와 μ–‘ 끝에 λ™μΌν•œ 간격을 λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€.


    βœ”οΈ λ‹€μŒ μ‹œκ°„μ—λŠ” Flex μ•„μ΄ν…œμ— μ μš©ν•˜λŠ” 속성듀에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€ !

profile
개발자λ₯Ό 꿈꾸며 μ˜€λŠ˜μ„ μ±„μ›Œ 내일을 그리고 μžˆμŠ΅λ‹ˆλ‹€ :)

0개의 λŒ“κΈ€