: μΉ νμ΄μ§ μ€νμΌ λ° λ μ΄μμμ μ μνλ μ€νμΌμνΈ μΈμ΄
UI
; user interface)UX
; user experience) from μ§κ΄μ μ΄κ³ μ¬μ΄ UI<link rel="stylesheet" href="index.css"/>
<link>
μμ: html νμΌκ³Ό λ€λ₯Έ νμΌμ μ°κ²°νλ λͺ©μ μΌλ‘ μ¬μ©rel
μμ±: μ°κ²°νκ³ μ νλ νμΌμ μν μ΄λ νΉμ§μ λνλhref
μμ±: νμΌμ μμΉ μΆκ° (νμΌμ΄ κ°μ ν΄λ λ΄μ μμΌλ©΄ νμΌ μ΄λ¦λ§ μ
λ ₯ / νμΌμ΄ λ€λ₯Έ ν΄λ λ΄μ μ‘΄μ¬νλ κ²½μ°μ μ λ κ²½λ‘λ μλ κ²½λ‘ μ
λ ₯)<!-- μΌλ°μ μΈ html ꡬ쑰 -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Page title</title>
<link rel="stylesheet" href="index.css"/> <!-- css νμΌ μ μ© -->
</head>
<body>
<header/>
<div class="container menu"> <!-- νλμ νκ·Έ μμμ μ¬λ¬ class μ μ© -->
<nav/>
<main/>
<aside/>
</div>
<footer/>
</body>
</html>
Selector
: μμ μ΄λ¦μ΄λ id, ν΄λμ€ μ ν/* css ꡬ쑰 */
body {
margin: 0;
padding: 0;
background: #fff; /* λ°°κ²½μ λ€λ₯Έ μμ±λ νμ€μ νλ²μ μ§μ κ°λ₯ */
}
header, footer {
font-size: large;
text-align : left / right / center / justify(μμͺ½ μ λ ¬); /* κ°λ‘μ λ ¬μ κ²½μ° */
padding: 0.3em 0;
background-color: #4a4a4a; /* background μμ±κ³Ό λ€λ₯΄κ² λ°°κ²½μλ§ μ§μ κ°λ₯*/
color: red; /* κΈμ μμ */
border-color: #c3e6cb; /* ν
λ리 μμ */
}
#navigation-title { /* '#'μ λΆμ¬ idλ‘ μμλ₯Ό μ νν΄ μ€νμΌλ§ */
font-family: "SF Pro KR", "MalgunGothic"; /* κΈκΌ΄ */
/* μμ μμ±ν κΈκΌ΄μ΄ μμ κ²½μ° λ€μ κΈκΌ΄ μ μ© */
}
.menu-item { /* '.'μ λΆμ¬ classλ₯Ό μ νν΄ μ€νμΌλ§ */
text-decoration: underline; /* λ°μ€ */
font-weight: 10 /* κ΅΅κΈ° */
letter-spacing: 10 /* μκ° */
line-height: 10 /* νκ° */
}
id | class |
---|---|
#μΌλ‘ μ ν | .μΌλ‘ μ ν |
ν λ¬Έμμ λ¨ νλμ μμμλ§ μ μ© | λμΌν κ°μ κ°λ μμ λ§μ |
νΉμ μμμ μ΄λ¦μ λΆμ΄λλ° μ¬μ© | μ€νμΌμ λΆλ₯μ μ¬μ© |
<style>
μμ λ΄μ μμ±μ λ λ¨μ | μλ λ¨μ |
---|---|
px, pt ... | %, em, rem, ch, vw, vh ... |
px
(ν½μ
): ν¬κΈ°κ° κ³ μ λ μ λ λ¨μ β μ¬μ©μ μ κ·Όμ± λΆλ¦¬. (λͺ¨λ°μΌ κΈ°κΈ°μ²λΌ μμ νλ©΄μ΄λ©΄μ λμμ κ³ ν΄μλμΈ κ²½μ°μ μ ν© X)rem
: rootμ κΈμ ν¬κΈ°, μ¦ λΈλΌμ°μ μ κΈ°λ³Έ κΈμ ν¬κΈ°κ° 1rem. (x2 β 2rem, x0.8 β 0.8rem) β μ κ·Όμ± μ 리vw
(viewport width): 1vwλ 보μ΄λ μμ λλΉμ 1/100vh
(viewport height): 1vhλ 보μ΄λ μμ λμ΄μ 1/100%
: htmlμ΄ μ°¨μ§νλ λͺ¨λ μμ, μ¦ μ§κΈμ 보μ΄μ§ μμΌλ μ€ν¬λ‘€ νμ λ 보μ΄λ μμκΉμ§ ν¬ν¨νμ λ λΉμ¨block box
: μ€ λ°κΏμ΄ λλ λ°μ€ (<h1>
, <p>
, <div>
)
inline box
: μ€ λ°κΏμ΄ μΌμ΄λμ§ μκ³ , ν¬κΈ° μ§μ μ ν μ μλ λ°μ€. width, height μμ± μ μ©x (<span>
)
inline-block box
: μ€ λ°κΏμ΄ μΌμ΄λμ§ μλ λμμ block λ°μ€μ νΉμ§μ κ°μ§λ λ°μ€
block | inline-block | inline | |
---|---|---|---|
μ€λ°κΏ | O | X | X |
κΈ°λ³Έμ μΌλ‘ κ°λ λλΉ(width) | 100% | κΈμκ° μ°¨μ§νλ λ§νΌ | κΈμκ° μ°¨μ§νλ λ§νΌ |
width, height μ¬μ© κ°λ₯ μ¬λΆ | O | O | X |
margin: λ°κΉ₯ μ¬λ°±
- margin: 10px 20px 30px 40px;
(top, right, bottom, left)
- margn: 10px 20px;
(10px: top, bottom / 20px: left, right)
- margin: 10px;
(λͺ¨λ λ°©ν₯μ μ μ©)
- margin-top: 10px;
(νΉμ λ°©ν₯μ μ§μ ν μμ±λ μ‘΄μ¬)
β μμ κ° μ§μ κ°λ₯ (λ€λ₯Έ elementμμ κ°κ²©μ΄ μ€μ΄λ¬, κ²ΉμΉκ² νλ κ²λ κ°λ₯)
padding: μμͺ½ μ¬λ°±
- padding: 10px 20px 30px 40px;
(top, right, bottom, left)
β λ°°κ²½μμ΄λ borderλ₯Ό μ μ©νλ©΄, paddingμ λ μ λͺ
νκ² νμΈ κ°λ₯
overflow
μμ±: μ½ν
μΈ ν¬κΈ° > λ°μ€ ν¬κΈ° β μ½ν
μΈ κ° λ°μ€ λ°κΉ₯μΌλ‘ λΉ μ Έμ€μ§ μλλ‘ μ¬μ©νλ μμ±auto
κ°: μ½ν
μΈ κ° λμΉλ κ²½μ° μ€ν¬λ‘€ μμ±hidden
κ°: λμΉλ μ½ν
μΈ μ λ΄μ©μ 보μ¬μ£Όκ³ μΆμ§ μμ κ²½μ°overflow-x
, overflow-y
: xμΆ, yμΆμ μ§μ ν΄ κ°λ‘/μΈλ‘ λ°©ν₯μΌλ‘ μ€ν¬λ‘€ ν μ μκ²λ μ§μ βΒ box-sizing: border-box
: λͺ¨λ λ°μ€μμ μ¬λ°±κ³Ό ν
λ리λ₯Ό ν¬ν¨ν ν¬κΈ°λ‘ κ³μ°
: CSS μμ±μ μ μ©ν λμμ μ ννλ λ°©λ²
* {}
h1 { }
div, h1 { }
#id
λ‘ μ
λ ₯νμ¬ μ ν#only { }
.class
λ‘ μ
λ ₯νμ¬ μ ν. κ°μ classλ₯Ό κ°μ§ λͺ¨λ μμ μ ν.center { }
a[href] { }
p[id=βonlyβ] { }
header > p { }
<header>
<p> βοΈ
<span>
<p></p>
</span>
</p>
<p> βοΈ
<span>
<p></p>
</span>
</p>
</header>
νμ Selector
: 첫 λ²μ§Έλ‘ μ
λ ₯ν μμμ νμ μ ν
header p { }
<header>
<p> βοΈ
<span>
<p></p> βοΈ
</span>
</p>
<p> βοΈ
<span>
<p></p> βοΈ
</span>
</p>
</header>
νμ Selector
: κ°μ λΆλͺ¨ μμλ₯Ό 곡μ νλ©΄μ, 첫 λ²μ§Έ μ
λ ₯ν μμ λ€μ μ€λ λ λ²μ§Έ μμ λͺ¨λ μ ν
section ~ p { }
```html
<header>
<section></section>
<p></p> βοΈ
<p></p> βοΈ
<p></p> βοΈ
</header>
```
μΈμ νμ Selector
: κ°μ λΆλͺ¨ μμλ₯Ό 곡μ νλ©΄μ, 첫 λ²μ§Έ μ
λ ₯ν μμ λ°λ‘ λ€μ μ€λ λ λ²μ§Έ μ
λ ₯ν μμ μ ν
section + p { }
```html
<header>
<section></section>
<p></p> βοΈ
<p></p>
<p></p>
</header>
```
κ°μ ν΄λμ€ Selector
: μμμ μν μ 보μ κΈ°λ°ν΄ μμ μ ν
a:link { } /*μ¬μ©μκ° λ°©λ¬Ένμ§ μμ <a>μμλ₯Ό μ ν */
a:visited { } /*μ¬μ©μκ° λ°©λ¬Έν <a>μμλ₯Ό μ ν */
a:hover { } /* λ§μ°μ€λ₯Ό μμ μμ μ¬λ Έμ λ μ ν */
a:active { } /* νμ±ν λ(ν΄λ¦λ) μνμΌ λ μ ν */
a:focus { } /* ν¬μ»€μ€κ° λ€μ΄μ μμ λ μ ν */
UI μμ μν Selector
input:checked + span { } /*μ²΄ν¬ μνμΌ λ μ ν */
input:enabled + span { } /*μ¬μ© κ°λ₯ν μνμΌ λ μ ν */
input:disabled + span { } /*μ¬μ© λΆκ°λ₯ν μνμΌ λ μ ν */
ꡬ쑰 κ°μ ν΄λμ€ Selector
p:first-child { }
ul > li:last-child { }
ul > li:nth-child(2n) { }
section > p:nth-child(2n+1) { }
ul > li:first-child { }
li:last-child { }
div > div:nth-child(4) { }
div:nth-last-child(2) { }
section > p:nth-last-child(2n + 1) { }
p:first-of-type { }
div:last-of-type { }
ul:nth-of-type(2) { }
p:nth-last-of-type(1) { }
λΆμ Selector
input:not([type="password"]) { }
div:not(:nth-of-type(2)) { }
μ ν©μ± νμΈ Selector
input[type="text"]:valid { }
input[type="text"]:invalid { }