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 |