CSS ๊ธฐ์ด
Categories: html-css
Tags: css, html, ๊ฐ๋ ์ ๋ฆฌ
๐ ๊ฐ์ธ์ ์ธ ๊ณต๊ฐ์ผ๋ก ๊ณต๋ถ๋ฅผ ๊ธฐ๋กํ๊ณ ๋ณต์ตํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ธ๋ก๊ทธ์
๋๋ค.
์ ํํ์ง ์์ ์ ๋ณด๊ฐ ์์ ์ ์์ผ๋ ์ฐธ๊ณ ๋ฐ๋๋๋ค :๐ธ
[ํ๋ฆฐ ๋ด์ฉ์ ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์๋ฉด ๋ณต๋ฐ์ผ์ค๊ฑฐ์์]
[์ค๋์ ๊ธฐ๋ก]
๋ง๋ก๋ง ๋ค์๋ css๋ฅผ ์ฒ์ ์ ํ๋๋ฐ
์ฌ์ด๋ฏ ์ด๋ ค์ด๋ฏํ๋ค
์ฝ๊ฐ ๋
ธ๊ฐ๋ค ๊ฐ์ ๋๋
๋ฐฑ์๋๊ฐ ๋ฉ์ธ์ด๋ผ ๋ฐ๋ก ํ
ํ
์ง๋๊ฐ์ง๋ง
๊น๊ฒ ๋ฐฐ์๋ณด๋ฉด ์ฌ๋ฐ์ง ์์๊น..?
HTML์ ํ๊ทธ๋ฅผ ์ ์ ํํ์ฌ ๊พธ๋ฉฐ์ค์ผํ๋ค๋ณด๋
์ ํ์๊ฐ ์ ์ผ ์ค์ํ๋ ์ ํ์๋ ๊ผญ๊ผญ ๋ณต์ตํ๊ธฐ.
CSS๋ ?
CSS ๋ ์น ํ์ด์ง ์คํ์ผ ๋ฐ ๋ ์ด์์์ ์ ์ํ๋ ์คํ์ผ์ํธ ์ธ์ด
- HTML๋ก ์น ํ์ด์ง์ ๊ตฌ์กฐ๋ฅผ ์ ์ธ์ฐ๊ณ ๋์, ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ(UX, user experience)์ ์ ๊ณตํ๊ธฐ ์ํจ
- CSS๋ก UI ๋ฐ ๋ ์ด์์์ ์ ์ ํ ๊ตฌ์ฑํ๋ฉด ๋ฉ์ง ์น ํ์ด์ง๋ฅผ ์์ฑํ ์ ์์
BOX
block | inline-block | inline |
---|---|---|
์ค ๋ฐ๊ฟ ์ฌ๋ถ | ์ค ๋ฐ๊ฟ์ด ์ผ์ด๋จ | ์ค ๋ฐ๊ฟ์ด ์ผ์ด๋์ง ์์ |
๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ๋ ๋๋น(width) | 100% | ๊ธ์๊ฐ ์ฐจ์งํ๋ ๋งํผ |
width, height ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ | ๊ฐ๋ฅ | ๊ฐ๋ฅ |
![Untitled]
ID์ Class ์ฌ์ฉํ์ฌ ํ์ด์ง ๋ง๋ค๊ธฐ ์์
- id๋ก ์ด๋ฆ ๋ถ์ฌ์ ์คํ์ผ๋ง ์ ์ฉํ๊ธฐ
-
ex) html ์์ ์ค ํ๋์ธ <h4>์ ์์ ์ ์ฉ
1 2 3
h4 { color: red; }
- ์๋์๋ ๋ค๋ฅด๊ฒ navigation๋ฟ๋ง ์๋๋ผ aside์๋ ์ ์ฉ๋จ
<h4>
์์๋ฅผ ์ ํํ๊ฒ ์ ํํ๊ธฐ ์ํด์๋ ์ด ์๋ฆฌ๋จผํธ์ id๋ฅผ ๋ถ์ฌ์ ํด๊ฒฐํ ์ ์์- id๊ฐ ์๋ ์์๋ฅผ ์ ํํ ๋๋
#
๊ธฐํธ๋ฅผ ์ด์ฉ -
html์ ์ ์ฉ
1
<h4 id="navigation-title">This is the navigation section.</h4>
-
CSS์ ์ ์ฉ
1 2 3
#navigation-title { color: red; }
-
- Class๋ก ์คํ์ผ์ ๋ถ๋ฅํ์ฌ ์ ์ฉ : ํ๋์ class๋ฅผ ์ฌ๋ฌ ์์์ ์ ์ฉ
-
navigation section์ ์์
<li>
์์์ ๋ฐ์ค์น๊ธฐ1 2 3
li { text-decoration: underline; }
-
๋ชจ๋ li ์์์ ๋ฐ์ค ์ ์ฉ๋จ
-
-
navigation section์ ๋ชจ๋
<li>
์์์ id๋ฅผ ์ถ๊ฐํ๊ณ CSS๋ฅผ ์ ์ฉ1 2 3 4 5 6 7
<!-- ์๋ชป๋ ์์ --> <ul> <li id="menu-item">Home</li> <li id="menu-item">Mac</li> <li id="menu-item">iPhone</li> <li id="menu-item">iPad</li> </ul>
- id๋ ๋ฌธ์ ๋ด์ ๋จ ํ๋์ ์์์๋ง ์ ์ฉํ ์ ์๋ ์ ์ผํ ์ด๋ฆ์ด์ด์ผ ํจ. ๋ฐ๋ผ์ ์ด ์์ ๋ id๋ฅผ ์๋ชป ์ฌ์ฉํ ์์
-
navigation section์ ๋ชจ๋
<li>
์์์ class๋ฅผ ์ถ๊ฐํ๊ณ CSS๋ฅผ ์ ์ฉ-
์ฌ๋ฌ ์์์ ๊ฐ์ ์คํ์ผ๋ง์ ์ ์ฉํ๊ธฐ ์ํด์๋ class๋ฅผ ์ฌ์ฉ
1 2 3 4 5 6 7
<!-- ๋ฐ๋ฅธ ์์ --> <ul> <li class="menu-item">Home</li> <li class="menu-item">Mac</li> <li class="menu-item">iPhone</li> <li class="menu-item">iPad</li> </ul>
-
class menu-item์ ์ ํํ์ฌ ๋ฐ์ค์ ์ ์ฉ
1 2 3
.menu-item { text-decoration: underline; }
-
-
- ์ฌ๋ฌ ๊ฐ์ class๋ฅผ ํ๋์ ์๋ฆฌ๋จผํธ์ ์ ์ฉํ๊ธฐ
- ์์๋ฅผ ๋ง๋ค๊ฑฐ๋, ์์์ ์คํ์ผ๋ง์ ์ ์ฉํ ๋๋ ํญ์ ์ด๋ฆ๊ณผ ๋ชฉ์ ์ด ์ผ์นํ๋์ง ํ์ธ
- ํ๋์ ์์์ ์ฌ๋ฌ class๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ
1
<li class="menu-item selected">Home</li>
-
ํน์ ํด๋์ค(selected)๋ฅผ ํตํด ์์๋ฅผ ์คํ์ผ๋งํ๋ ๋ชจ์ต
1 2 3 4
.selected { font-weight: bold; color: #009999; }
์ menu-item selected๊ฐ ์๋์ง ๊ถ๊ธํ๋๋ฐ
.menu-item selected
๋ ์กด์ฌํ์ง ์๋ ํ์ ํ๊ทธ๋ฅผ ๊ฐ๋ฆฌํค๋ ์๋ชป๋ ํํ์ด๊ณ ,.menu-item.selected
๋.selected
๋ฅผ ์ฌ์ฉํด์ผ ํจ
- ์์๋ฅผ ๋ง๋ค๊ฑฐ๋, ์์์ ์คํ์ผ๋ง์ ์ ์ฉํ ๋๋ ํญ์ ์ด๋ฆ๊ณผ ๋ชฉ์ ์ด ์ผ์นํ๋์ง ํ์ธ
</br> </br>
์ ๋๋จ์ ์๋๋จ์
๊ธ๊ผด ํฌ๊ธฐ, ํ๋ฉด ํฌ๊ธฐ ๋ฑ ํฌ๊ธฐ๋ฅผ ๋ค๋ฃฐ ๋๋ ํฌ๊ธฐ์ ๋จ์๊ฐ ๋ฌด์๋ณด๋ค ์ค์,
ํฌ๊ธฐ์ ๋จ์๋ ์ ๋ ๋จ์์ ์๋ ๋จ์, ๋ ๊ฐ์ง๋ก ๊ตฌ๋ถ
- ์ ๋ ๋จ์:
px
,pt
- ์๋ ๋จ์:
%
,em
,rem
,ch
,vw
,vh
๋ฑ
- ๊ธฐ๊ธฐ๋ ๋ธ๋ผ์ฐ์ ์ฌ์ด์ฆ ๋ฑ์ ํ๊ฒฝ์ ์ํฅ์ ๋ฐ์ง ์๋ ์ ๋์ ์ธ ํฌ๊ธฐ โpx : ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋ ์ ๋ ๋จ์์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ์ ๊ทผ์ฑ์ด ๋ถ๋ฆฌ
- ํฝ์ ์ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ์ฒ๋ผ ์์ ํ๋ฉด์ด๋ฉด์, ๋์์ ๊ณ ํด์๋์ธ ๊ฒฝ์ฐ์๋ ์ ํฉํ์ง ์์ต๋๋ค.
- ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ ์๋ ๋จ์์ธ
rem
์ ์ถ์ฒ.- root์ ๊ธ์ ํฌ๊ธฐ, ์ฆ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๊ธ์ ํฌ๊ธฐ๊ฐ 1rem์ด๋ฉฐ, ๋ ๋ฐฐ๋ก ํฌ๊ฒ ํ๊ณ ์ถ๋ค๋ฉด 2rem, ์๊ฒ ํ๋ ค๋ฉด 0.8rem ๋ฑ์ผ๋ก ์กฐ์ ํด์ ์ฌ์ฉ
em
์ ๋ถ๋ชจ ์๋ฆฌ๋จผํธ์ ๋ฐ๋ผ ์๋์ ์ผ๋ก ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋๋ฏ๋ก ๊ณ์ฐ์ด ์ด๋ ต์ต๋๋ค.- ์ด์ ๋นํด
rem
์ root์ ๊ธ์ ํฌ๊ธฐ์ ๋ฐ๋ผ์๋ง ์๋์ ์ผ๋ก ๋ณํฉ๋๋ค.)
- ํ๋ฉด ์ฌ์ด์ฆ๋ฅผ ์ ํ ๋
- ๋ฐ์ํ ์น(responsive web)์์ ๊ธฐ์ค์ ์ ๋ง๋ค ๋
- ๋ฐ์ํ ์น์ ๋๋ฐ์ด์ค์ ๋๋น(width)์ ๋ฐ๋ผ ์ ๋์ ์ธ ๋ ์ด์์์ด ์ ์ฉ๋๋ ์น์ฌ์ดํธ
- ๋๋ฐ์ด์ค ํฌ๊ธฐ๋ณ๋ก CSS๋ฅผ ๋ฌ๋ฆฌ ์ ์ฉํด์ผ ํจ โ ์ด๋, ๋๋ฐ์ด์ค ํฌ๊ธฐ๋ฅผ ๋๋๋ ๊ธฐ์ค์ ๋ณดํต
px
๋ก ์ ํจ
- ํ๋ฉด ๋๋น๋ ๋์ด์ ๋ฐ๋ฅธ ์๋์ ์ธ ํฌ๊ธฐ๊ฐ ์ค์ํ ๊ฒฝ์ฐ
- ์ด๋์๋
vw
,vh
๋ฅผ ์ฌ์ฉ โ ๊ฐ๊ฐ viewport width์ viewport height๋ฅผ ๋ป 1vw
๋ ๋ณด์ด๋ ์์ญ ๋๋น์ 1/100์,1vh
๋ ๋ณด์ด๋ ์์ญ ๋์ด์ 1/100์ ๋ป- ํ๋ฉด์ ๊ฐ๋ ์ฑ์ฐ๋ฉฐ ๋ฑ ๋จ์ด์ง๊ฒ ์คํฌ๋กค๋๋ ์ฌ์ดํธ โ ์ด๋ฐ ์น ํ์ด์ง์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด
100vw
,100vh
๋ฅผ ์ฌ์ฉํด ๊ตฌํํ ๊ฒ - ์ฐธ๊ณ ๋ก
<body>
ํ๊ทธ์์์%
๋ HTML์ด ์ฐจ์งํ๋ ๋ชจ๋ ์์ญ, ์ฆ ์ง๊ธ์ ๋ณด์ด์ง ์์ผ๋ ์คํฌ๋กคํ์ ๋ ๋ณด์ด๋ ์์ญ๊น์ง ํฌํจํ์ ๋ ๋น์จ
- ์ด๋์๋
- ๋ฐ์ํ ์น(responsive web)์์ ๊ธฐ์ค์ ์ ๋ง๋ค ๋
</br> </br>
Selector
๊ธฐ๋ณธ ์ ํ์
-
์ ์ฒด ์ ํ์
1
* { }
-
ํ๊ทธ ์ ํ์ : ๊ฐ์ ํ๊ทธ๋ช ์ ๊ฐ์ง ๋ชจ๋ ์์๋ฅผ ์ ํ, ๋ณต์๋ก๋ ์ ํ๊ฐ๋ฅ
1 2 3 4
h1 { } div { } section, h1 { }
-
ID ์ ํ์ :
#id
1
#only { }
-
Class ์ ํ์ :
.class
๋ก ์ ๋ ฅํ์ฌ ์ ํ, ๊ฐ์ class๋ฅผ ๊ฐ์ง ๋ชจ๋ ์์๋ฅผ ์ ํ1 2
.widget { } .center { }
-
attribute ์ ํ์: ๊ฐ์ ์์ฑ์ ๊ฐ์ง ์์๋ฅผ ์ ํ
1 2 3 4 5 6 7
a[href] { } p[id="only"] { } p[class~="out"] { } p[class|="out"] { } section[id^="sect"] { } div[class$="2"] { } div[class*="w"] { }
์์/ํ์/ํ์ ์ ํ์
- ์์ ์ ํ์
- ์ฒซ ๋ฒ์งธ๋ก ์ ๋ ฅํ ์์์ ๋ฐ๋ก ์๋ ์์์ธ ์์๋ฅผ ์ ํ
-
<header>
์์ ๋ฐ๋ก ์๋์ ์๋ ๋ ๊ฐ์<div>
์์๋ ์ ํ๋์ง๋ง,<p>
์์์ ์์์ธ<div>
์์๋ ์ ํ๋์ง ์์1
header > div { }
1 2 3 4 5 6 7 8 9 10 11 12
<header> <div> <!-- ์ ํ --> <p> <div></div> </p> </div> <div> <!-- ์ ํ --> <p> <div></div> </p> </div> </header>
- ํ์ ์ ํ์ : ์ฒซ ๋ฒ์งธ๋ก ์
๋ ฅํ ์์์ ํ์์ ์ ํ
-
<header>
์์์ ์์์ธ<div>
์์๋ฟ ์๋๋ผ,<p>
์์์ ์์์ธ<div>
์์๊น์ง ๋ชจ๋ ์ ํ1
header div {}
1 2 3 4 5 6 7 8 9 10 11 12 13 14
<header> <div><!-- ์ ํ --> <p> <div><!-- !!์ ํ!! --> </div> </p> </div> <div><!-- ์ ํ --> <p> <div><!-- !!์ ํ!! --> </div> </p> </div> </header>
-
-
ํ์ ์ ํ์ : ๊ฐ์ ๋ถ๋ชจ ์์๋ฅผ ๊ณต์ ํ๋ฉด์, ์ฒซ ๋ฒ์งธ ์ ๋ ฅํ ์์ ๋ค์ ์ค๋ ๋ ๋ฒ์งธ ์ ๋ ฅํ ์์๋ฅผ ๋ชจ๋ ์ ํ
1
section ~ p { }
1 2 3 4 5 6
<header> <section></section> <p></p> <!-- ์ ํ --> <p></p> <!-- ์ ํ --> <p></p> <!-- ์ ํ --> </header>
-
์ธ์ ํ์ ์ ํ์
1
section + p { }
1 2 3 4 5 6
<header> <section></section> <p></p> <!-- ์ ํ --> <p></p> <p></p> </header>
๊ธฐํ ์ ํ์
-
๊ฐ์ ํด๋์ค ์ ํ์
1 2 3 4 5
a:link { } /*์ฌ์ฉ์๊ฐ ๋ฐฉ๋ฌธํ์ง ์์ <a>์์๋ฅผ ์ ํํฉ๋๋ค. ์ด ์ํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ด์ง๊ฐ ์ฒ์ ๋ก๋๋์์ ๋ ๋งํฌ์ ์ ์ฉ๋ฉ๋๋ค.*/ a:visited { } /*์ฌ์ฉ์๊ฐ ๋ฐฉ๋ฌธํ <a>์์๋ฅผ ์ ํํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์๊ฐ ๋ฐฉ๋ฌธํ ๋งํฌ๋ฅผ ๊ธฐ์ตํ๊ณ ์คํ์ผ์ ๋ค๋ฅด๊ฒ ์ ์ฉํฉ๋๋ค.*/ a:hover { } /* ๋ง์ฐ์ค๋ฅผ ์์ ์์ ์ฌ๋ ธ์ ๋ ์ ํํฉ๋๋ค. */ a:active { } /* ํ์ฑํ ๋(ํด๋ฆญ๋) ์ํ์ผ ๋ ์ ํํฉ๋๋ค. */ a:focus { } /* ํฌ์ปค์ค๊ฐ ๋ค์ด์ ์์ ๋ ์ ํํฉ๋๋ค. ํฌ์ปค์ค๋ ํค๋ณด๋๋ก ๋งํฌ๋ฅผ ํ์ํ ๋ ๋ฐ์ํฉ๋๋ค. (์: ํญ ํค ์ฌ์ฉ)*/
-
UI ์์ ์ํ ์ ํ์
1 2 3
input:checked + span { } /*์ฒดํฌ ์ํ์ผ ๋ ์ ํํฉ๋๋ค. */ input:enabled + span { } /*์ฌ์ฉ ๊ฐ๋ฅํ ์ํ์ผ ๋ ์ ํํฉ๋๋ค. */ input:disabled + span { } /*์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ์ํ์ผ ๋ ์ ํํฉ๋๋ค. */
-
๊ตฌ์กฐ ๊ฐ์ ํด๋์ค ์ ํ์
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
p:first-child { } /* ์ ๋ ํฐ๋ ๋ถ๋ชจ ์์์ ์ฒซ ๋ฒ์งธ ์์ ์์๊ฐ <p>์ผ ๋ ์ ํํฉ๋๋ค. */ ul > li:last-child { } /* ul ์์์ ๋ง์ง๋ง ์์์ธ li ์์๋ฅผ ์ ํํฉ๋๋ค. */ <ul> <li>์ฒซ ๋ฒ์งธ ํญ๋ชฉ</li> <li>๋ ๋ฒ์งธ ํญ๋ชฉ</li> <li>๋ง์ง๋ง ํญ๋ชฉ</li> </ul> ul > li:nth-child(2n) { } /* ul ์์์ ์ง์ ๋ฒ์งธ ์์์ธ li ์์๋ฅผ ์ ํํฉ๋๋ค. */ <ul> <li>์ฒซ ๋ฒ์งธ ํญ๋ชฉ</li> <li>๋ ๋ฒ์งธ ํญ๋ชฉ</li> <li>์ธ ๋ฒ์งธ ํญ๋ชฉ</li> <li>๋ค ๋ฒ์งธ ํญ๋ชฉ</li> </ul> section > p:nth-child(2n+1) { } /* section ์์์ ํ์ ๋ฒ์งธ ์์์ธ p ์์๋ฅผ ์ ํํฉ๋๋ค. */ <section> <p>์ฒซ ๋ฒ์งธ ๋จ๋ฝ</p> <p>๋ ๋ฒ์งธ ๋จ๋ฝ</p> <p>์ธ ๋ฒ์งธ ๋จ๋ฝ</p> <p>๋ค ๋ฒ์งธ ๋จ๋ฝ</p> </section> ul > li:first-child { } /* ul ์์์ ์ฒซ ๋ฒ์งธ ์์์ธ li ์์๋ฅผ ์ ํํฉ๋๋ค.*/ <ul> <li>์ฒซ ๋ฒ์งธ ํญ๋ชฉ</li> <li>๋ ๋ฒ์งธ ํญ๋ชฉ</li> <li>์ธ ๋ฒ์งธ ํญ๋ชฉ</li> </ul> li:last-child { } /* ๋ถ๋ชจ ์์์ ๋ง์ง๋ง ์์์ธ li ์์๋ฅผ ์ ํํฉ๋๋ค. */ <ul> <li>์ฒซ ๋ฒ์งธ ํญ๋ชฉ</li> <li>๋ ๋ฒ์งธ ํญ๋ชฉ</li> <li>๋ง์ง๋ง ํญ๋ชฉ</li> </ul> div > div:nth-child(4) { } /* div ์์์ ๋ค ๋ฒ์งธ ์์์ธ div ์์๋ฅผ ์ ํํฉ๋๋ค. */ <div> <div>์ฒซ ๋ฒ์งธ div</div> <div>๋ ๋ฒ์งธ div</div> <div>์ธ ๋ฒ์งธ div</div> <div>๋ค ๋ฒ์งธ div</div> </div> div:nth-last-child(2) { } /* ๋ถ๋ชจ ์์์ ๋ค์์ ๋ ๋ฒ์งธ ์์์ธ div ์์๋ฅผ ์ ํํฉ๋๋ค. */ <div> <div>์ฒซ ๋ฒ์งธ div</div> <div>๋ ๋ฒ์งธ div</div> <div>์ธ ๋ฒ์งธ div</div> <div>๋ค ๋ฒ์งธ div</div> </div> section > p:nth-last-child(2n + 1) { } /* ๋ถ๋ชจ ์์์ ๋ค์์ ํ์ ๋ฒ์งธ ์์์ธ p ์์๋ฅผ ์ ํํฉ๋๋ค. */ p:first-of-type { } /* ํ์ ์์ ์ค ์ฒซ ๋ฒ์งธ <p> ์์๋ฅผ ์ ํํฉ๋๋ค. */ <div> <p>์ฒซ ๋ฒ์งธ ๋จ๋ฝ</p> <span>ํ ์คํธ</span> <p>๋ ๋ฒ์งธ ๋จ๋ฝ</p> </div> div:last-of-type { } /* ํ์ ์์ ์ค ๋ง์ง๋ง <div> ์์๋ฅผ ์ ํํฉ๋๋ค. */ <div> <div>์ฒซ ๋ฒ์งธ div</div> <span>ํ ์คํธ</span> <div>๋ง์ง๋ง div</div> </div> ul:nth-of-type(2) { } /* ํ์ ์์ ์ค ๋ ๋ฒ์งธ <ul> ์์๋ฅผ ์ ํํฉ๋๋ค. */ <ul> <li>์ฒซ ๋ฒ์งธ ๋ชฉ๋ก</li> </ul> <ul> <li>๋ ๋ฒ์งธ ๋ชฉ๋ก</li> </ul> p:nth-last-of-type(1) { } /* ํ์ ์์ ์ค ๋ง์ง๋ง <p> ์์๋ฅผ ์ ํํฉ๋๋ค. */ <div> <p>์ฒซ ๋ฒ์งธ ๋จ๋ฝ</p> <span>ํ ์คํธ</span> <p>๋ง์ง๋ง ๋จ๋ฝ</p> </div>
-
๋ถ์ ์ ํ์
1 2 3 4 5 6 7 8 9 10 11 12 13 14
input:not([type="password"]) { } /* type ์์ฑ์ด "password"๊ฐ ์๋ ๋ชจ๋ <input> ์์๋ฅผ ์ ํํฉ๋๋ค. */ <form> <input type="text" placeholder="Username"> <input type="password" placeholder="Password"> <input type="email" placeholder="Email"> <input type="submit" value="Submit"> </form> div:not(:nth-of-type(2)) { } /* ํ์ ์์๋ค ์ค ๋ ๋ฒ์งธ div ์์๋ฅผ ์ ์ธํ ๋ชจ๋ div ์์๋ฅผ ์ ํํฉ๋๋ค.*/ <div>์ฒซ ๋ฒ์งธ div</div> <div>๋ ๋ฒ์งธ div</div> <div>์ธ ๋ฒ์งธ div</div> <div>๋ค ๋ฒ์งธ div</div>
-
์ ํฉ์ฑ ํ์ธ ์ ํ์
1 2 3 4 5 6 7 8 9 10 11 12 13 14
input[type="text"]:valid { } /* ์ฌ๋ฐ๋ฅธ ํ์์ผ๋ก ์ ๋ ฅ๋ ํ ์คํธ ํ๋๋ฅผ ์ ํํฉ๋๋ค. ์ฆ, ์ ํจํ ๊ฐ์ด ์ ๋ ฅ๋ input ์์๋ฅผ ์ ํํฉ๋๋ค.*/ <form> <label for="username">Username (at least 3 characters):</label> <input type="text" id="username" name="username" pattern=".{3,}" required> <input type="submit" value="Submit"> </form> input[type="text"]:invalid { } /* ์ฌ๋ฐ๋ฅด์ง ์์ ํ์์ผ๋ก ์ ๋ ฅ๋ ํ ์คํธ ํ๋๋ฅผ ์ ํํฉ๋๋ค. ์ฆ, ๋ฌดํจํ ๊ฐ์ด ์ ๋ ฅ๋ input ์์๋ฅผ ์ ํํฉ๋๋ค.*/ <form> <label for="username">Username (at least 3 characters):</label> <input type="text" id="username" name="username" pattern=".{3,}" required> <input type="submit" value="Submit"> </form>
Flexbox
Flexbox ์์ฑ๋ค์ ํ์ฉํ๋ฉด ์์์ ์ ๋ ฌ, ์์๊ฐ ์ฐจ์งํ๋ ๊ณต๊ฐ์ ์ค์ ๊ฐ๋ฅ
๋ถ๋ชจ์์์ ์ ์ฉํด์ผ ํ๋ ์์ฑ
flex-direction
flex-wrap
justify-content
flex-direction : ์ ๋ ฌ ์ถ ์ ํ๊ธฐ
์์ ์์๋ค์ ์ ๋ ฌํ ์ ๋ ฌ ์ถ์ ์ ํจ
์๋ฌด ์ค์ ๋ ํด์ฃผ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ๋ก ์ ๋ ฌ
flex-wrap : ์ค ๋ฐ๊ฟ ์ค์
flex-wrap
์์ฑ์ ํ์ ์์๋ค์ ํฌ๊ธฐ๊ฐ ์์ ์์์ ํฌ๊ธฐ๋ฅผ ๋์ผ๋ฉด ์๋ ์ค ๋ฐ๊ฟ์ ํ ๊ฒ์ธ์ง ์ ํจ.
์ค์ ํด ์ฃผ์ง ์์ผ๋ฉด ์ค ๋ฐ๊ฟ์ ํ์ง ์์
justify-content : ์ถ ์ํ ๋ฐฉํฅ ์ ๋ ฌ
์์ ์์๋ค์ ์ถ์ ์ํ ๋ฐฉํฅ์ผ๋ก ์ด๋ป๊ฒ ์ ๋ ฌํ ๊ฒ์ธ์ง ์ ํจ
์๋ค์ด ๊ฐ๋ก๋ก ์ ๋ ฌ๋์ด ์๋ค๋ฉด ๊ฐ๋ก ๋ฐฉํฅ์ผ๋ก ์ด๋ป๊ฒ ์ ๋ ฌํ ๊ฒ์ธ์ง, ์ธ๋ก๋ก ์ ๋ ฌ๋์ด ์๋ค๋ฉด ์ธ๋ก ๋ฐฉํฅ์ผ๋ก ์ด๋ป๊ฒ ์ ๋ ฌํ ๊ฒ์ธ์ง ์ ํ๋ ์์ฑ
flex-direction : row
์ธ ๊ฒฝ์ฐ โ
flex-direction : column
์ธ ๊ฒฝ์ฐ โ๏ธ
align-items : ์ถ ์์ง ๋ฐฉํฅ ์ ๋ ฌ
align-items
์์ฑ์ ์์ ์์๋ค์ ์ถ์ ์์ง ๋ฐฉํฅ์ผ๋ก ์ด๋ป๊ฒ ์ ๋ ฌํ ๊ฒ์ธ์ง ์ ํจ
์์๋ค์ด ๊ฐ๋ก๋ก ์ ๋ ฌ๋์ด ์๋ค๋ฉด ์ธ๋ก ๋ฐฉํฅ์ผ๋ก ์ด๋ป๊ฒ ์ ๋ ฌํ ๊ฒ์ธ์ง, ์ธ๋ก๋ก ์ ๋ ฌ๋์ด ์๋ค๋ฉด ๊ฐ๋ก ๋ฐฉํฅ์ผ๋ก ์ด๋ป๊ฒ ์ ๋ ฌํ ๊ฒ์ธ์ง ์ ํ๋ ์์ฑ
align items: row
์ธ ๊ฒฝ์ฐ
align items: column
์ธ ๊ฒฝ์ฐ
์์์์์ ์ ์ฉํด์ผ ํ๋ ์์ฑ
๋ถ๋ชจ ์์์ ์ ์ฉํด์ผ ํ๋ ์์ฑ๋ค์ด ์์ ์์๋ค์ ์ ๋ ฌ๊ณผ ๊ด๋ จ์ด ์์๋ค๋ฉด,
์์ ์์์๊ฒ ์ ์ฉํด์ผ ํ๋ ์์ฑ์ธ flex
๋ ์์๊ฐ ์ฐจ์งํ๋ ๊ณต๊ฐ๊ณผ ๊ด๋ จ์ด ์์
1
flex: <grow(ํฝ์ฐฝ ์ง์)> <shrink(์์ถ ์ง์)> <basis(๊ธฐ๋ณธ ํฌ๊ธฐ)>
๊ธฐ๋ณธ๊ฐ : flex: grow shrink basis
, flex: 0 1 auto
์์ ๊ธฐ์ตํ๊ธฐ
1
flex: 0 1 auto;
1
2
3
flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;
์ ์๋ ์ฝ๋๋ ๊ฐ์ ๊ฐ์ด๋ค.
- glow : ์๋ํฌ๊ธฐ ==ํฝ์ฐฝ์ง์์ ์ ๋์ ํฌ๊ธฐ๊ฐ ์๋ ์ดํฉ์์์ ๋น์จ๋ก ๋น ๊ณต๊ฐ์ ์ฐจ์ง
-
flex
์์ฑ์ ์ค์ ํ๊ธฐ ์ grow
์ ๊ธฐ๋ณธ ๊ฐ์ธ 0์ ๋น ๊ณต๊ฐ์ด ์์ด๋ ๋์ด๋์ง ์์์ ์๋ฏธ-
box1๋ง
flex-grow : 1
๋ก ์ค์ , ๋๋จธ์ง ๋ฐ์ค๋flex-grow : 0
-
box1, box2๋
flex-grow : 1
๋ก ์ค์ . box3๋งflex-grow : 0
์ธ ์ํ -
์ธ ๋ฐ์ค ๋ชจ๋
flex-grow : 1
-
- shrink -๊ฑฐ์ ์์
- grow์ ๋ฐ๋๋ก, ์ค์ ํ ๋น์จ๋งํผ ๋ฐ์ค ํฌ๊ธฐ๊ฐ ์์์ง
- ๋น์จ์ด ํด์๋ก ๋ ๋ง์ด ์ค์ด๋ค๊ฒ ๋จ.
- ๊ทธ๋ฌ๋
flex-grow
์์ฑ๊ณผflex-shrink
์์ฑ์ ํจ๊ป ์ฌ์ฉํ๋ ์ผ์ ์ถ์ฒํ์ง ์์ lex-grow
์์ฑ์ผ๋ก ๋น์จ์ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ,flex-shrink
์์ฑ์ ๊ธฐ๋ณธ๊ฐ์ธ 1๋ก ๋์ด๋ ๋ฌด๋ฐฉ
- basis : ๊ธฐ๋ณธํฌ๊ธฐ
lex-grow
๋flex-shrink
์ ์ํด ๋์ด๋๊ฑฐ๋ ์ค์ด๋ค๊ธฐ ์ ์ ๊ฐ์ง๋ ๊ธฐ๋ณธ ํฌ๊ธฐ- grow๋ 0 : 1 : 1๋ก ์ค์ ํ๊ณ , box1์ flex-basis : 50px,
box1์ ํฌ๊ธฐ๊ฐ ๋์ด๋๊ฑฐ๋ ์ค์ด๋ค์ง ์๊ณ 50px์ ์ ์ง
Leave a comment