CodeGym /์ž๋ฐ” ์ฝ”์Šค /Frontend SELF KO /๊ต์ฐจ ์ถ• ์ •๋ ฌ

๊ต์ฐจ ์ถ• ์ •๋ ฌ

Frontend SELF KO
๋ ˆ๋ฒจ 17 , ๋ ˆ์Šจ 4
์‚ฌ์šฉ ๊ฐ€๋Šฅ

8.1 align-items ์†์„ฑ

align-items์™€ align-self ์†์„ฑ์€ Flex ์š”์†Œ๋“ค์„ ๊ต์ฐจ ์ถ•์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ณ , ๋ ˆ์ด์•„์›ƒ์—์„œ ์œ ์—ฐ์„ฑ๊ณผ ์ •ํ™•์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

align-items ์†์„ฑ์€ Flex ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ Flex ์š”์†Œ๋“ค์„ ์ฃผ ์ถ•๊ณผ ์ˆ˜์ง์„ ์ด๋ฃจ๋Š” ๊ต์ฐจ ์ถ•์œผ๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. ๊ต์ฐจ ์ถ•์€ flex-direction ์†์„ฑ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค:

  • flex-direction ๊ฐ’์ด row ๋˜๋Š” row-reverse์ธ ๊ฒฝ์šฐ, ๊ต์ฐจ ์ถ•์€ ์ˆ˜์ง์ž…๋‹ˆ๋‹ค.
  • flex-direction ๊ฐ’์ด column ๋˜๋Š” column-reverse์ธ ๊ฒฝ์šฐ, ๊ต์ฐจ ์ถ•์€ ์ˆ˜ํ‰์ž…๋‹ˆ๋‹ค.

๊ฐ’:

  • stretch: ์š”์†Œ๋“ค์ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค (๊ธฐ๋ณธ๊ฐ’)
  • flex-start: ์š”์†Œ๋“ค์ด ์ปจํ…Œ์ด๋„ˆ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค
  • flex-end: ์š”์†Œ๋“ค์ด ์ปจํ…Œ์ด๋„ˆ์˜ ๋ ๋ถ€๋ถ„์— ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค
  • center: ์š”์†Œ๋“ค์ด ์ปจํ…Œ์ด๋„ˆ์˜ ์ค‘์•™์— ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค
  • baseline: ์š”์†Œ๋“ค์ด ํ…์ŠคํŠธ์˜ ๊ธฐ์ค€์„ ์— ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค

์‚ฌ์šฉ ์˜ˆ์‹œ:

CSS
    
      .container {
        display: flex;
        height: 200px;
        border: 2px solid #000;
        padding: 10px;
        margin-bottom: 20px;
      }

      .item {
        background-color: #3498db;
        color: white;
        padding: 10px;
        margin: 5px;
      }

      .align-stretch {
        align-items: stretch;
      }

      .align-flex-start {
        align-items: flex-start;
      }
    
  
HTML
    
      <div class="container align-stretch">
        <div class="item">์š”์†Œ 1</div>
        <div class="item">์š”์†Œ 2</div>
        <div class="item">์š”์†Œ 3</div>
      </div>

      <div class="container align-flex-start">
        <div class="item">์š”์†Œ 1</div>
        <div class="item">์š”์†Œ 2</div>
        <div class="item">์š”์†Œ 3</div>
      </div>
    
  

8.2 align-self ์†์„ฑ

align-self ์†์„ฑ์€ ํŠน์ • Flex ์š”์†Œ์— ๋Œ€ํ•ด align-items ๊ฐ’์„ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ด ์†์„ฑ์€ ์ง์ ‘ Flex ์š”์†Œ์— ์ ์šฉ๋˜์–ด Flex ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ ๊ต์ฐจ ์ถ•์œผ๋กœ ์ •๋ ฌ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’:

  • auto: ๋ถ€๋ชจ๋กœ๋ถ€ํ„ฐ ๊ฐ’์„ ์ƒ์†๋ฐ›์Œ (๊ธฐ๋ณธ๊ฐ’)
  • stretch: ์š”์†Œ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค
  • flex-start: ์š”์†Œ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค
  • flex-end: ์š”์†Œ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ์˜ ๋ ๋ถ€๋ถ„์— ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค
  • center: ์š”์†Œ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ์˜ ์ค‘์•™์— ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค
  • baseline: ์š”์†Œ๊ฐ€ ํ…์ŠคํŠธ์˜ ๊ธฐ์ค€์„ ์— ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค

์‚ฌ์šฉ ์˜ˆ์‹œ:

CSS
    
      .container {
        display: flex;
        height: 200px;
        border: 2px solid #000;
        padding: 10px;
        margin-bottom: 20px;
        align-items: flex-start;
      }

      .item {
        background-color: #3498db;
        color: white;
        padding: 10px;
        margin: 5px;
      }

      .self-flex-end {
        align-self: flex-end;
      }

      .self-center {
        align-self: center;
      }

      .self-baseline {
        align-self: baseline;
      }
    
  
HTML
    
      <div class="container">
        <div class="item self-flex-end">์š”์†Œ 3</div>
        <div class="item self-center">์š”์†Œ 4</div>
        <div class="item self-baseline">์š”์†Œ 5</div>
      </div>
    
  

์ฝ”๋“œ ์„ค๋ช…:

  • .self-flex-end: ์ด ์š”์†Œ๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ํ•˜๋‹จ์— ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค
  • .self-center: ์ด ์š”์†Œ๋Š” ์ˆ˜์ง ์ค‘์•™์— ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค
  • .self-baseline: ์ด ์š”์†Œ๋Š” ํ…์ŠคํŠธ์˜ ๊ธฐ์ค€์„ ์— ๋งž์ถ”์–ด ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค

8.3 ์š”์†Œ ์ค‘์‹ฌ ์ •๋ ฌ

Flexbox๋Š” justify-content์™€ align-items ๋˜๋Š” align-self์˜ ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ๋“ค์„ ์ˆ˜ํ‰ ๋ฐ ์ˆ˜์ง์œผ๋กœ ์‰ฝ๊ฒŒ ์ค‘์•™์— ๋งž์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์˜ˆ์‹œ:

CSS
    
      .center-container {
        display: flex;
        justify-content: center; /* ์ˆ˜ํ‰ ์ค‘์‹ฌ ์ •๋ ฌ */
        align-items: center; /* ์ˆ˜์ง ์ค‘์‹ฌ ์ •๋ ฌ */
        height: 300px;
        border: 2px solid #000;
      }

      .center-item {
        background-color: #3498db;
        color: white;
        padding: 20px;
      }
    
  
HTML
    
      <div class="center-container">
        <div class="center-item">์ค‘์•™ ์ •๋ ฌ๋œ ์š”์†Œ</div>
      </div>
    
  

์ฝ”๋“œ ์„ค๋ช…:

  • .center-container: justify-content: center;๋กœ ์ˆ˜ํ‰์œผ๋กœ, align-items: center;๋กœ ์ˆ˜์ง์œผ๋กœ ์š”์†Œ๋“ค์ด ์ค‘์•™ ์ •๋ ฌ๋œ Flex ์ปจํ…Œ์ด๋„ˆ
  • .center-item: ์ปจํ…Œ์ด๋„ˆ์˜ ์ค‘์•™์— ์ •๋ ฌ๋œ Flex ์š”์†Œ
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION