๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

CSS

CSS ๋ฐ˜์‘ํ˜• vw, vh, vmin, vmax์™€ Flex ๊ทธ๋ฆฌ๊ณ  inline, block

728x90

๋ฐ˜์‘ํ˜• ์›น

vw : ๋ทฐํฌํŠธ ๋„ˆ๋น„์˜ 100๋ถ„์˜ 1 vmin : ๋ทฐํฌํŠธ ๋†’์ด vs ๋„ˆ๋น„ -> ์ž‘์€ ์ชฝ์˜ 100๋ถ„์˜ 1
vh : ๋ทฐํฌํŠธ ๋†’์ด์˜ 100๋ถ„์˜ 1 vmax : ๋ทฐํฌํŠธ ๋†’์ด vs ๋„ˆ๋น„ -> ํฐ ์ชฝ์˜ 100๋ถ„์˜ 1

Flex - ๋ ˆ์ด์•„์›ƒ ๋ฐฐ์น˜ ์ „์šฉ ๊ธฐ๋Šฅ

<div class="container"> <!-- Flex Container-->
	<div class="item">helloflex</div> <!--Flex Item-->
	<div class="item">abc</div>
	<div class="item">helloflex</div>
</div>

Flex Container๊ฐ€ Flex์˜ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ์ „์ฒด ๊ณต๊ฐ„

-> ์„ค์ •๋œ ์†์„ฑ์— ๋”ฐ๋ผ Flex Item์ด ์–ด๋–ค ํ˜•ํƒœ๋กœ ๋ฐฐ์น˜๋˜๋Š” ๊ฒƒ

Flex์˜ ์†์„ฑ์€

  • Container์— ์ ์šฉํ•˜๋Š” ์†์„ฑ
  • Item์— ์ ์šฉํ•˜๋Š” ์†์„ฑ
Container์— ์ ์šฉํ•˜๋Š” ์†์„ฑ  Item์— ์ ์šฉํ•˜๋Š” ์†์„ฑ

.container {
ใ€€ใ€€display : flex
}


Flex Item
 - ๊ฐ€๋กœ ๋ฐฉํ–ฅ ๋ฐฐ์น˜,
- ์ž์‹ ์ด ๊ฐ€์ง„ ๋‚ด์šฉ๋ฌผ์˜ width๋งŒํผ๋งŒ ์ฐจ์ง€ (inline ์š”์†Œ์ฒ˜๋Ÿผ)

- height๋Š”Container ๋†’์ด๋งŒํผ ๋Š˜์–ด๋‚จ (์ปฌ๋Ÿผ ๋ ˆ์ด์•„์›ƒ ๋งŒ๋“ค๋•Œ๐Ÿ‘) ์•„๋ž˜ ๊ทธ๋ฆผ ์ฐธ๊ณ 


----------------------------------------------------------------------

.container {

ใ€€ใ€€display : block
}

---------------------------------------------------------------------------

.container {

ใ€€ใ€€display : inline-flex
}

inline-flex (= inline-block)
Container๊ฐ€ ์ฃผ๋ณ€ ์š”์†Œ๋“ค๊ณผ ์–ด๋–ป๊ฒŒ ์–ด์šฐ๋Ÿฌ์งˆ์ง€ ๊ฒฐ์ •
(Item ๋ฐฐ์น˜x)


------------------------------------------------------------------------------

flex-direction : ๋ฐฐ์น˜ ๋ฐฉํ–ฅ ์„ค์ • 

.container {
ใ€€ใ€€flex-direction : row;
ใ€€ใ€€ใ€€ใ€€ใ€€/* column, row-reverse, column-reverse */
}


---------------------------------------------------------------------------------

flex-wrap : ์ค„๋„˜๊น€ ์ฒ˜๋ฆฌ

.container {
ใ€€ใ€€flex-wrap: nowrap;
ใ€€ใ€€ใ€€ใ€€ใ€€/* wrap, wrap-reverse*/
}
 

---------------------------------------------------------------------------------

flex-flow ( flex-direction + flex wrap)

.container {
ใ€€ใ€€flex-flow: row wrap;  /* direction : row, wrap : wrap */
}

----------------------------------------------------------------------

justify : ๋ฉ”์ธ์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌ (๊ฐ€๋กœ)
.container {
ใ€€ใ€€display : flex;
ใ€€ใ€€justify-content: flex-start;
ใ€€ใ€€ใ€€ใ€€/* flex-end, center*/
ใ€€ใ€€ใ€€ใ€€/*space-between, space-around, space-evenly */
}



align : ์ˆ˜์ง์ถ• ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌ (์„ธ๋กœ)
.container {
ใ€€ใ€€display : flex;
ใ€€ใ€€align-items: stretch;
ใ€€ใ€€ใ€€ใ€€/* flex-start, flex-end, center, baseline*/
}


----------------------------------------------------------------------
flex-basis : item ๊ธฐ๋ณธ ํฌ๊ธฐ
( direction : row โ–ถ ๋„ˆ๋น„ /  column  โ–ถ  ๋†’์ด )
.item {

ใ€€ใ€€flex-basis: auto 
ใ€€ใ€€/* 0, 50%, 30px, 10rem, content */
}



---------------------------------------------------------------------------------

flex-grow : ์œ ์—ฐํ•˜๊ฒŒ ๋Š˜๋ฆฌ๊ธฐ 
.item {
ใ€€ใ€€flex-grow: 0  /*1*/
}

flex-basis์˜ ๊ฐ’๋ณด๋‹ค ์ปค์งˆ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ
flex-grow : 1 
์›๋ž˜์˜ ํฌ๊ธฐ๋ณด๋‹ค ์ปค์ง€๋ฉฐ, ๋นˆ ๊ณต๊ฐ„์„ ๋ฉ”์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


flex-grow์˜ ์ˆซ์ž๋Š” ์—ฌ๋ฐฑ ๋ถ€๋ถ„์„ flex-grow์— ์ง€์ •๋œ ์ˆซ์ž์˜ ๋น„์œจ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ€์ง„๋‹ค.
.item:nth-child(1) { flex-grow: 1; }
.item:nth-child(2) { flex-grow: 2; }
.item:nth-child(3) { flex-grow: 1; }



----------------------------------------------------------------------

align-self (align-items์˜ item ๋ฒ„์ „)
:ํ•ด๋‹น item์˜ ์ˆ˜์ง์ถ• ๋ฐฉํ–ฅ ์ •๋ ฌ
<-> align-items: ์ „์ฒด item์˜ ์ˆ˜์ง์ถ• ๋ฐฉํ–ฅ ์ •๋ ฌ

.item {
ใ€€ใ€€align-self: auto;
ใ€€ใ€€/* stretch, flex-start, flex-end, center, baseline; */
}

   

inline vs block vs inline-block

display : inline

์ „ํ›„ ์ค„๋ฐ”๊ฟˆ ์—†์ด ํ•œ ์ค„์— ์—˜๋ฆฌ๋จผํŠธ๋“ค๊ณผ ๋‚˜๋ž€ํžˆ ๋ฐฐ์น˜

์˜ˆ ) <span>, <a>, <em>

 

 

 

display : block

์ „ํ›„ ์ค„๋ฐ”๊ฟˆ์ด ๋“ค์–ด๊ฐ€ ๋‹ค๋ฅธ ์—˜๋ฆฌ๋จผํŠธ๋“ค์„ ๋‹ค๋ฅธ ์ค„๋กœ ๋ฐ€์–ด๋‚ด๊ณ 

ํ˜ผ์ž ํ•œ์ค„์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ ) <div>, <p>, <h1>

block ์—˜๋ฆฌ๋จผํŠธ๋Š” inline ์—˜๋ฆฌ๋จผํŠธ์™€ ๋‹ฌ๋ฆฌ

width, height, margin, padding ์†์„ฑ์ด ๋ชจ๋‘ ๋ฐ˜์˜๋จ

 

 

 

 

 

 

 

dispaly : inline-block

๋งˆ์น˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ชจ๋“œ

inline ์—˜๋ฆฌ๋จผํŠธ์ฒ˜๋Ÿผ ์ „ํ›„ ์ค„๋ฐ”๊ฟˆ ์—†์ด ํ•œ ์ค„์— ๋‹ค๋ฅธ ์—˜๋ฆฌ๋จผํŠธ๋“ค๊ณผ ๋‚˜๋ž€ํžˆ

block ์—˜๋ฆฌ๋จผํŠธ์ฒ˜๋Ÿผ width, height, margin, padding ์†์„ฑ ์ง€์ •๊ฐ€๋Šฅ

→ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ํ•œ์ค„์— ์ •ํ™•ํžˆ ์›ํ•˜๋Š” ๋„ˆ๋น„๋งŒํผ ๋ฐฐ์น˜

์˜ˆ ) <button>, <input>, <select>

728x90

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

styled-components ๊ตฌ๊ธ€๋ง  (0) 2023.08.02