Jieunny์ ๋ธ๋ก๊ทธ
Unit4. CSS ๊ธฐ์ด ๋ณธ๋ฌธ
๐ฃ CSS
โ๏ธ CSS ๋?
์น ํ์ด์ง ์คํ์ผ ๋ฐ ๋ ์ด์์์ ์ ์ํ๋ ์คํ์ผ์ํธ ์ธ์ด
โ๏ธ UI & UX ๋?
UI (์ฌ์ฉ์ ์ธํฐํ์ด์ค) : ์ปดํจํฐ์ ๋ฌด์งํ ์ผ๋ฐ ์ฌ์ฉ์๊ฐ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ ์ธํฐํ์ด์ค
UX (์ฌ์ฉ์ ๊ฒฝํ)
์ง๊ด์ ์ด๊ณ ์ฌ์ด UI ์์ ์ข์ UX ๋์จ๋ค.
โ๏ธ CSS ๋ฌธ๋ฒ ๊ตฌ์ฑ
์ ๋ ํฐ, ์ ์ธ ๋ธ๋ก, ์ ์ธ, ์์ฑ๋ช , ์์ฑ๊ฐ, ์ ์ธ ๊ตฌ๋ถ์
body {
color: red;
font-size: 30px;
}
โ๏ธ CSS ํ์ผ ์ถ๊ฐ
1. ์ธ๋ถ ์คํ์ผ ์ํธ
html ํ์ผ ์์ <link> ํ๊ทธ ์์์ href ์์ฑ์ ํตํด html, css ํ์ผ์ ์ฐ๊ฒฐ
rel : ์ฐ๊ฒฐํ๊ณ ์ ํ๋ ํ์ผ์ ์ญํ ์ด๋ ํน์ง
href : ํ์ผ์ html๊ณผ์ ์๋์ ์ธ ์์น (์ ๋ ๊ฒฝ๋ก๋ ๊ฐ๋ฅ)
<link rel="stylesheet" href="index.css" />
2. ๋ด๋ถ ์คํ์ผ ์ํธ
css ๋ด์ฉ์ ๋ณ๋ ํ์ผ๋ก ๊ตฌ๋ถํ์ง ์๊ณ <style> ์์ ๋ด์ ์์ฑ
3. ์ธ๋ผ์ผ ์คํ์ผ
html ์ฝ๋์ ๊ฐ์ ์ค์ ์คํ์ผ์ ์ ์ฉ
<nav style="background: #eee; color: blue"> ... </nav>
๐จ id ์ class ์ ์ฐจ์ด
id | class |
#์ผ๋ก ์ ํ | . ์ผ๋ก ์ ํ |
ํ ๋ฌธ์์ ๋จ ํ๋์ ์์์๋ง ์ ์ฉ |
๋์ผํ ๊ฐ์ ๊ฐ๋ ์์ ๊ฐ๋ฅ |
ํน์ ์์์ ์ด๋ฆ์ ๋ถ์ด๋ ๋ฐ ์ฌ์ฉ |
์คํ์ผ์ ๋ถ๋ฅ์ ์ฌ์ฉ ex) checked, unchecked |
๐ฃ CSS ์์ฑ
โ๏ธ ์์
๊ธ์ ์์ : color
๋ฐฐ๊ฒฝ ์์ : background-color
๋ฐ์ค ํ ๋๋ฆฌ ์์ : border-color
โ๏ธ ๊ธ๊ผด
font-family : ๊ธ๊ผด ์ค์
fallback ๊ธ๊ผด : ์์ ์๋ ๊ธ๊ผด์ด ์ ๋ ๊ฒฝ์ฐ ์ฐจ๋ก๋๋ก ์ ์ฉ
.main {
font-family: "SF Pro KR", "MalgunGothic", "Verdana";
}
โ๏ธ ํ
์คํธ
font-size : ๊ธ์์ ํฌ๊ธฐ ๋ณ๊ฒฝ
font-weight : ๊ตต๊ธฐ ๋ณ๊ฒฝ
text-decoration : ๋ฐ์ค, ๊ฐ๋ก์ค
letter-spacing : ์๊ฐ
line-height : ํ๊ฐ
โ๏ธ ์ ๋ ฌ
๊ฐ๋ก ์ ๋ ฌ : text-align (left, right, center, justify)
๐ฃ ๋จ์
์ ๋ ๋จ์ : px, pt ๋ฑ
์๋ ๋จ์ : %, em, rem, ch, vw, vh ๋ฑ
โ๏ธ ๊ธ๊ผด ์ฌ์ด์ฆ๋ฅผ ์ ํ ๋
1. ์ฃผ๋ณ ํ๊ฒฝ์ ์ํฅ์ ๋ฐ์ง ์๋ ์ ๋์ ์ธ ํฌ๊ธฐ๋ก ์ ํ๋ ๊ฒฝ์ฐ : px
2. ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ : rem
์ฌ์ฉ์๊ฐ ์ค์ ํ ๊ธฐ๋ณธ ๊ธ๊ผด ํฌ๊ธฐ(root์ ๊ธ์ ํฌ๊ธฐ)๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ์๋ ๋จ์
em์ ๋ถ๋ชจ ์๋ฆฌ๋จผํธ์ ๋ฐ๋ผ ๋ฐ๋๋ฏ๋ก ๊ณ์ฐ์ด ์ด๋ ต๋ค.
โ๏ธ ํ๋ฉด ์ฌ์ด์ฆ๋ฅผ ์ ํ ๋
1. ๋ฐ์ํ ์น์์ ๊ธฐ์ค์ ์ ๋ง๋ค๋
๋๋ฐ์ด์ค ํฌ๊ธฐ๋ณ๋ก CSS๋ฅผ ๋ฌ๋ฆฌ ํด์ผํ๋ค.
๋๋ฐ์ด์ค ํฌ๊ธฐ๋ฅผ ๋๋๋ ๊ธฐ์ค์ px
2. ํ๋ฉด ๋๋น๋ ๋์ด์ ๋ฐ๋ฅธ ์๋์ ์ธ ํฌ๊ธฐ๊ฐ ์ค์ํ ๊ฒฝ์ฐ
์น์ฌ์ดํธ์ ๋ณด์ด๋ ์์ญ(Viewport)์ ๊ธฐ์ค์ผ๋ก ํ๋ vw, vh
ํ๋ฉด ๊ฐ๋ ์ฑ์ฐ๋ ๋ฐฉ๋ฒ -> 100vw, 100vh
๐ฃ ๋ฐ์ค๋ชจ๋ธ
๋ชจ๋ ์ฝํ ์ธ ๋ ๊ฐ์์ ์์ญ์ ๊ฐ์ง๋ค.
ํ๋์ ์ปจํ ์ธ ๋ก ๋ฌถ์ด๋ ์์๋ค์ด ํ๋์ ๋ฐ์ค๊ฐ ๋๋ค.
๋ฐ์ค๋ ํญ์ ์ง์ฌ๊ฐํ, ๋๋น์ ๋์ด๋ฅผ ๊ฐ๋๋ค.
โ๏ธ block ์์
์ค ๋ฐ๊ฟ์ด ๋๋ ๋ฐ์ค
<h1>, <p>, <div>
โ๏ธ inline ์์
์ค ๋ฐ๊ฟ ์์ด ์์ผ๋ก ๋ถ๋ ๋ฐ์ค
ํฌ๊ธฐ ์ง์ ์ ํ ์ ์๋ ๋ฐ์ค
<span>
โ๏ธ inline-block ์์
์ค ๋ฐ๊ฟ์ด ์ผ์ด๋์ง ์๋ ๋ฐ์ค + block ๋ฐ์ค์ ํน์ง
์์ฒด์ ์ผ๋ก ๊ณ ์ ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ค.
๐จ ์ ๋ฆฌ
block | inline-block | inline | |
์ค๋ฐ๊ฟ | O | X | X |
๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ๋ ๋๋น (width) |
100% | ๊ธ์๊ฐ ์ฐจ์งํ๋ ๋งํผ |
๊ธ์๊ฐ ์ฐจ์งํ๋ ๋งํผ |
ํฌ๊ธฐ ์ค์ ๊ฐ๋ฅ ์ฌ๋ถ |
O | O | X |
โ๏ธ ๋ฐ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์์

โฐ border : ํ ๋๋ฆฌ
โฐ margin : ๋ฐ๊นฅ ์ฌ๋ฐฑ (top, right, bottom, left or top&bottom, left&right ์์)
์์ ๊ฐ์ ์ง์ ํ ์ ์๋ค.
โฐ padding : ์์ชฝ ์ฌ๋ฐฑ
โ๏ธ ๋ฐ์ค๋ฅผ ๋ฒ์ด๋๋ ์ฝํ
์ธ ์ฒ๋ฆฌ
๋ฐ์ค ํฌ๊ธฐ๋ณด๋ค ์ฝํ ์ธ ํฌ๊ธฐ๊ฐ ๋ ํฐ ๊ฒฝ์ฐ ์ฝํ ์ธ ๊ฐ ๋ฐ์ค ๋ฐ์ผ๋ก ๋น ์ ธ๋์จ๋ค.
๋น ์ ธ๋์ค๋ ๋ถ๋ถ์ ๊ฐ๋ฆฌ๊ฑฐ๋ or ๋ฐ์ค ์์ ์คํฌ๋กค์ ์ถ๊ฐํ๋ค.
๋ฐ์ค์ overflow : hidden or auto; ์์ฑ ์ง์
โ๏ธ ๋ฐ์ค ํฌ๊ธฐ ์ธก์ ๊ธฐ์ค
๋ฐ์ค์ ์ ์ฉํ ์ฌ๋ฐฑ์ ๊ณ ๋ คํด์ผ ํ๋ค.
box-sizing : border-box. // ๋ฐ์ค์์ ์ฌ๋ฐฑ๊ณผ ํ ๋๋ฆฌ๋ฅผ ํฌํจํ ํฌ๊ธฐ๋ก ๊ณ์ฐ๋๋ค.
๐ฃ CSS Selector
โ๏ธ ๊ธฐ๋ณธ ์ ๋ ํฐ
์ ์ฒด ์ ๋ ํฐ *
ํ๊ทธ ์ ๋ ํฐ h1, div, section ...
id ์ ๋ ํฐ #hello
class ์ ๋ ํฐ .hello
attribute ์ ๋ ํฐ : ๊ฐ์ ์์ฑ์ ๊ฐ์ง ์์๋ฅผ ์ ํ
โฐ p[id="only"] // id๊ฐ์ด only์ธ p ๋ฅผ ์ ํ
๐จ CSS ํด๋์ค ๋์ด์ฐ๊ธฐ
โฐ ๊ณต๋ฐฑ์์ด ํด๋์ค๋ผ๋ฆฌ ๋ถ์ด์๋ ๊ฒฝ์ฐ
.name1.name2 : name1 ๊ณผ name2 ๊ฐ ๋ชจ๋ ์ ์ธ๋ ์์
โฐ ์ผํ๊ฐ ์๋ ๊ฒฝ์ฐ
.name1, name2 : name1 ๋๋ name 2 ์ธ ์์ ๋ชจ๋
โฐ ํด๋์ค ์ฌ์ด ๊ณต๋ฐฑ์ด ์๋ ๊ฒฝ์ฐ
.name1 .name2 : .name1 ํด๋์ค์ ํ์ ์์์ธ .name2 ํด๋์ค ์์
โ๏ธ ์์ ์
๋ ํฐ
header > p {}
<header> ์์ ์๋์ ์๋ <p> ์์๋ ์ ํ๋๊ณ
<span> ์์ ์์์ธ <p> ๋ ์ ํ๋์ง ์๋๋ค.
๋ฐ๋ก ์๋ ์์๋ง ์ ํ
โ๏ธ ํ์ ์ ๋ ํฐ
header p {}
์ฒซ ๋ฒ์งธ๋ก ์ ๋ ฅํ ์์์ ํ์์ ์ ํํ๋ค.
๋ฐ๋ก ์๋ ์์ + ํ์ ์์
โ๏ธ ํ์ ์ ๋ ํฐ
section ~ p {}
<header>
<section></section>
<p></p>
<p></p>
<p></p>
</header>
section ์์๋ฅผ ๋ค๋ฐ๋ฅด๋ ๋ชจ๋ <p>
<p> ์์๋ฅผ ๋ชจ๋ ์ ํํ๋ค.
โ๏ธ ์ธ์ ํ์ ์ ๋ ํฐ
section + p {}
section ์์๋ฅผ ๋ฐ๋ก ๋ค๋ฐ๋ฅด๋ <p> ์์
์ฒซ ๋ฒ์งธ <p> ์์๋ฅผ ์ ํํ๋ค.
โ๏ธ ๊ฐ์ ํด๋์ค ์ ๋ ํฐ
a:link ์ฌ์ฉ์๊ฐ ๋ฐฉ๋ฌธํ์ง ์์ <a>์์๋ฅผ ์ ํ
a:visited ์ฌ์ฉ์๊ฐ ๋ฐฉ๋ฌธํ <a>์์ ์ ํ
a:hover ๋ง์ฐ์ค๋ฅผ ์์ <a>์์ ์์ ์ฌ๋ ธ์ ๋ ์ ํ
a:active ํด๋ฆญ๋ ์ํ์ผ ๋ ์ ํ
a:focus ํฌ์ปค์ค๊ฐ ๋ค์ด์ ์์ ๋ ์ ํ
โ๏ธ UI ์์ ์ํ ์ ๋ ํฐ
input:checked + span {} ์ฒดํฌ ์ํ์ผ ๋ ์ ํ
input:enabled + span {} ์ฌ์ฉ ๊ฐ๋ฅํ ์ํ์ผ ๋ ์ ํ
input:disabled + span {} ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ์ํ์ผ ๋ ์ ํ
โ๏ธ ๊ตฌ์กฐ ๊ฐ์ ํด๋์ค ์ ๋ ํฐ
p:first-child {} ํ์ ์์ ์ค ์ฒซ๋ฒ์งธ ์์ ์ ํ (p๊ฐ ์ฒซ๋ฒ์งธ์ ์์ด์ผ ์ ์ฉ๊ฐ๋ฅํ ์ฝ๋)
ul > li:last-child {} ul ๋ฐ๋ก ์๋ ๋ง์ง๋ง li ์์ ์ ํ
ul > li:nth-child(2n) {} ul์ ๋ฐ๋ก ์๋ ์ง์๋ฒ์งธ li ์ ํ
div:nth-last-child(2) {} div์ ๋ง์ง๋ง ์์๋ก๋ถํฐ 2๋ฒ์งธ ์์
p:first-of-type {} <p> ์์์ ๊ฐ์ ํ์ ์ ์ฒซ๋ฒ์งธ ํ์ ์ ํ
div:last-of-type {} <div> ์์์ ๊ฐ์ ํ์ ์ ๋ง์ง๋ง ํ์ ์ ํ
ul:nth-of-type(2) {} ์ฒ์๋ถํฐ <ul> ์์์ ๊ฐ์ ํ์ ์ 2๋ฒ์งธ ํ์ ์ ํ
p:nth-last-of-type(1) {} ๋ง์ง๋ง๋ถํฐ <p> ์์์ ๊ฐ์ ํ์ ์ 1๋ฒ์งธ ํ์ ์ ํ
๐จ :first-child ์ :first-of-type์ ์ฐจ์ด
<div>
<div>text1<text>
<p>text2</p>
<p>text3</p>
</div>
div p:first-child { color: red }
// div ํ์ ์๋ฆฌ๋จผํธ ์ค p ์๋ฆฌ๋จผํธ๊ฐ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ์ ์์นํด์ผ ํ๋๋ฐ ๊ทธ๋ ์ง ์์์ ์ ํํ ์ ์๋ค.
// ๋ณํ ์์.
div p:first-of-type { color : red }
// p ์๋ฆฌ๋จผํธ๋ง์ ๊ธฐ์ค์ผ๋ก ์นด์ดํธ ํ๊ธฐ ๋๋ฌธ์ text2์ ์์์ด ๋ฐ๋.
โ๏ธ ๋ถ์ ์ ๋ ํฐ
input:not([type="password"]) {} type์ด password ๊ฐ ์๋ input ์ ํ
div:not(:nth-of-type(2)) {} div ํ์ ์์ ์ค ๋๋ฒ์งธ div ๊ฐ ์๋ ์์ ์ ํ
โ๏ธ ์ ํฉ์ฑ ํ์ธ ์ ๋ ํฐ
input[type="text"]:valid {} ์ ํฉ์ฑ ๊ฒ์ฆ์ด ์ฑ๊ณตํ type="text"์ธ input ์ ํ
input[type="text"]:invalid {} ์ ํฉ์ฑ ๊ฒ์ฆ์ด ์ฑ๊ณตํ type="text"์ธ input ์ ํ
'CodeStates > learning contents' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Unit7. [Linux&Git ๊ธฐ์ด] CLI, ๊ถํ, ๊ฒฝ๋ก (0) | 2022.12.21 |
---|---|
Unit5. HTML/CSS ํ์ฉ (0) | 2022.12.19 |
Unit3. HTML ๊ธฐ์ด (0) | 2022.12.16 |
Unit2. [JS]์กฐ๊ฑด๋ฌธ & ๋ฐ๋ณต๋ฌธ & ํจ์ (0) | 2022.12.16 |
Unit2. [JS]๋ณ์์ ํ์ (0) | 2022.12.16 |