๋ฐ์ํ ์น
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>
'CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
styled-components ๊ตฌ๊ธ๋ง (0) | 2023.08.02 |
---|