FE/HTML,CSS

[css] Flex๋ž€?

mandelina 2022. 4. 13. 15:58

๐Ÿš€ flex ?

 

์ปจํ…์ธ ๋ฅผ ์ •๋ ฌํ•˜๊ฑฐ๋‚˜ ๊ณต๊ฐ„์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” css  ์†์„ฑ์˜ ์ง‘ํ•ฉ

(์˜›๋‚ ์—๋Š” ์ „์„ค์˜ ํ…Œ์ด๋ธ” ์ฝ”๋”ฉ์œผ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ์žก์•˜์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค . . . !?

flex๋ฅผ ๋ฐฐ์šฐ๋Š” ๋‚˜ ํ–‰๋ณตํ•˜๋‹ค . . .)

 

ํŠน์ง•

- flex๋Š” ๊ฐ€๋กœ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐฐ์น˜๋œ๋‹ค.

 

- inline์š”์†Œ์ฒ˜๋Ÿผ ์ž์‹ ์ด ๊ฐ€์ง„ ๋‚ด์šฉ๋ฌผ์˜ width๋งŒํผ ์ฐจ์ง€ํ•œ๋‹ค.

 

- flex๋กœ ๋ฐฐ์น˜์‹œ height๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ๋†’์ด๋งŒํผ ์•Œ์•„์„œ ๋Š˜์–ด๋‚œ๋‹ค.

 


๐Ÿฅธ flex-direction

 

 

- ๋ฉ”์ธ์ถ•์˜ ์ •๋ ฌ ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •ํ•œ๋‹ค.

(์ด ๋ฉ”์ธ์ถ•์˜ ์ •๋ ฌ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ justify-content์™€ align-item์˜ ์ •๋ ฌ์ถ•๋„ ๊ฒฐ์ •๋œ๋‹ค! )

 

1) row๋กœ ์„ค์ •ํ•œ๋‹ค๋ฉด ๊ฐ€๋กœ(ํ–‰)๋กœ ๋ฐฐ์น˜๊ฐ€ ๋œ๋‹ค.

.container {
  display: flex;
	flex-direction : row;
}

 

 

2) column์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์„ธ๋กœ(์—ด)๋กœ ๋ฐฐ์น˜๋œ๋‹ค.

.container{
	display : flex;
	flex-direction : column;	
}

๊ทธ๋ฐ–์— row-reverse , column-reverse ์†์„ฑ๋„ ์žˆ๋‹ค.

 


 

๐Ÿฅธ jutify-content 

 

- ๋ฉ”์ธ์ถ•(Axis)์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์˜ ์œ„์น˜๋ฅผ ์กฐ์ •

 

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>flex</title>
    <style>
      .container {
        margin: 100px;
        display: flex;
        flex-direction: row;
        /* justify-content: flex-start; */
        /* justify-content: flex-end; */
        /* justify-content: center; */
        /* justify-content: space-between; */
        /* justify-content: space-around; */
        height: 700px;
        background-color: #f9f1f0;
        border: 2px solid black;
      }
      .box {
        background-color: pink;
        border: 2px solid black;
        width: 70px;
        height: 70px;
        margin: 10px;
        text-align: center;
        line-height: 70px;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="box">box1</div>
      <div class="box">box2</div>
      <div class="box">box3</div>
    </div>
  </body>
</html>

 

 justify-content: flex-start;

justify-content: flex-end; 

 justify-content: center;

justify-content: space-between;

justify-content: space-around; 

 

โ—๏ธ โ—๏ธ โ—๏ธ ๋งŒ์•ฝ ๋ฉ”์ธ์ถ•์ด  flex-direction: row๋ผ๋ฉด ? ๊ฐ€๋กœ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜ ์กฐ์ •

                              flex-direction: cloum์ด๋ผ๋ฉด ? ์„ธ๋กœ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜ ์กฐ์ •  

 

 

 

* Axis ์™€ Cross-Axis

- flex์—์„  axis(์ถ•)์™€ ์ง์„ ์ด๋ฃจ๋Š” cross-axis๊ฐ€ ์กด์žฌํ•œ๋‹ค.

- axis (๋ฉ”์ธ์ถ•์ด๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.)๊ฐ€ row๋ผ๋ฉด cros-axis๋Š” column!

- axis (๋ฉ”์ธ์ถ•์ด๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.)๊ฐ€ column!๋ผ๋ฉด cros-axis๋Š” row

์ถœ์ฒ˜ : ์œ„๋‹ˆ๋ธŒ

 


 

๐Ÿฅธ align-items

-  ๋ฉ”์ธ์ถ•์˜ ๋ฐ˜๋Œ€์ถ•(cross-Axis) ์™€ ๊ฐ™์€ ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌ

 

 align-items: center;
align-items: flex-start;
align-items: flex-end;

 

๊ทธ๋ฐ–์— flex-wrap , align-content ,align-self , flex-grow , flex-shrink ๋“ฑ์ด ์žˆ๋‹ค.

๋ฐ‘์— ๋‚จ๊ฒจ๋‘” ์‚ฌ์ดํŠธ๋ฅผ ๋ณด๋ฉฐ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค.

 


๐ŸŒˆ๊ทธ๋ฐ–์—

 

- flexbox๋ฅผ ํ•œ๋ˆˆ์— ๋ณด๊ธฐ ์ข‹์€ ์‚ฌ์ดํŠธ

https://codepen.io/enxaneta/full/adLPwv

 

Flexbox playground

...

codepen.io

 

- ์ค‘์•™์ •๋ ฌ :  display: flex;  jutify-content : center; align-item: center;  ๊ทธ๋ƒฅ ์™ธ์šฐ์ž!

 

 


๐Ÿ”ฅ ํšŒ๊ณ 

- ์‚ฌ์‹ค  flex๋Š” ์ตœ์‹ ๊ธฐ์ˆ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ง€์›์„ ํ•˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ €๋“ค๋„ ์žˆ๋‹ค. (์‚ฌ์ง„์ฐธ๊ณ )

 

 

 

 

flex๋ฅผ ์•Œ๋˜ float๋„ ์ž์ฃผ ์จ์ค˜์•ผ๊ฒ ๋‹ค.. ^^

 

 

 

- ๋ฐด๋”ฉ๋จธ์‹ ๊ณผ ๋กœ๊ทธ์ธํผ ๊ณผ์ œ๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•ด์„œ ์ข€ ์ŠฌํŽ์—ˆ๋Š”๋ฐ ๋‹คํ–‰ํžˆ ๊ธฐ๊ฐ„์ด ์—ฐ์žฅ๋๋‹ค!! 

  ์ฃผ๋ง์ด ๊ปด์žˆ์œผ๋‹ˆ ๊ผญ ์—ด์‹ฌํžˆ ํ•ด์„œ ์™„์„ฑํ•ด์•ผ์ง€ ^_^

'FE > HTML,CSS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CSS] CSS ์„ค๊ณ„๊ธฐ๋ฒ•  (0) 2022.04.18
[CSS] grid ?  (0) 2022.04.14
[css] float  (0) 2022.04.12
[css] position  (0) 2022.04.11
[css] ์ค‘์•™์ •๋ ฌ ์‹œ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ ๋ชจ์Œ  (0) 2022.04.07