βΆ κ°μ ν΄λμ€μ κ°μ μμ
μλ₯Ό λ€μ΄ λ©λ΄μμ λͺ λ²μ§Έ νλͺ©μ΄λΌλ κ° λ¨λ½μ 첫 λ²μ§Έ κΈμ λ±μ κ²½μ°, μ΄λ»κ² μ§μ ν΄μΌ ν κΉμ? μ΄ λ ν΄λμ€ μ΄λ¦ μμ μ½λ‘ (:)μ λΆμ¬ νμνλ κ°μ ν΄λμ€μ ν΄λμ€ μ΄λ¦ μμ μ½λ‘ λ κ°(::)λ₯Ό λΆμ¬ νμνλ κ°μ μμλ₯Ό μ¬μ©νλ€.
β
β
β
*μ¬μ©μ λμμ λ°μνλ κ°μ ν΄λμ€
μ¬μ©μκ° μΉ μμλ₯Ό ν΄λ¦νκ±°λ λ§μ°μ€ 컀μλ₯Ό μ¬λ €λλ λ± νΉμ λμμ ν λ μ€νμΌμ΄ λ°λλλ‘ λ§λ€κ³ μΆλ€λ©΄ κ°μ ν΄λμ€ μ νμλ₯Ό μ¬μ©νλ€.
β
1. :link κ°μ ν΄λμ€ μ νμ - λ°©λ¬Ένμ§ μλ λ§ν¬μ μ€νμΌ μ μ©
λ¬Έμ μμ νμ΄νΌλ§ν¬ μ€μμ μ¬μ©μκ° μμ§ λ°©λ¬Ένμ§ μμ λ§ν¬μ μ€νμΌμ μ μ©νλ€. ν μ€νΈ λ§ν¬λ κΈ°λ³Έμ μΌλ‘ νλμ(blue) κΈμμ λ°μ€λ‘ νμλλλ° λ§ν¬μ λ°μ€μ μμ κ±°λ μμμ λ°κΎΈλ €κ³ ν λ :link μ νμλ₯Ό μ¬μ©νλ€.
β
2. :visited κ°μ ν΄λμ€ μ νμ - λ°©λ¬Έν λ§ν¬μ μ€νμΌ μ μ©
λ¬Έμμ λ§ν¬ μ€μμ ν λ² μ΄μ λ°©λ¬Έν λ§ν¬μ λν μ€νμΌμ μ μ©νλ€. λ°©λ¬Έν ν μ€νΈ λ§ν¬λ κΈ°λ³Έμ μΌλ‘ μμ£Όμ(purple)μΌλ‘ νμλλλ° μ¬μ©μκ° λ°©λ¬Ένλ λ§ν¬λ μΌλ° ν μ€νΈ λ§ν¬μ μμμ΄ λ¬λΌμ§μ§ μκ² νλ €λ©΄ :visited μ νμλ₯Ό μ¬μ©ν΄ μ‘°μ νλ€.
β
3. :hover κ°μ ν΄λμ€ μ νμ - μΉ μμμ λ§μ°μ€ 컀μλ₯Ό μ¬λ €λμ λμ μ€νμΌ μ μ©
μΉ μμ μλ‘ λ§μ°μ€ 컀μλ₯Ό μ¬λ €λμ λμ μ€νμΌμ μ§μ νλ€. μ΄ κ°μ ν΄λμ€ μ νμλ₯Ό μμ©νλ©΄ μ΄λ―Έμ§ μλ‘ λ§μ°μ€ 컀μλ₯Ό μ¬λ €λμΌλ©΄ λ€λ₯Έ μ΄λ―Έμ§λ‘ λ°λμλ€κ° λ§μ°μ€ 컀μλ₯Ό μΉμ°λ©΄ μλ μ΄λ―Έμ§λ‘ λμμ€λ λ‘€μ€λ² ν¨κ³Ό(rollover)λ₯Ό λ§λ€ μ μλ€.
β
4. :active κ°μ ν΄λμ€ μ νμ - μΉ μμλ₯Ό νμ±ννμ λμ μ€νμΌ μ μ©
λ§ν¬λ μ΄λ―Έμ§ λ± μΉ μμλ₯Ό νμ±ννμ λ(λλ₯΄κ³ μμ λ)μ μ€νμΌμ μ§μ νλ€. μλ₯Ό λ€μ΄ λ§ν¬λ₯Ό ν΄λ¦νμ λμ μ€νμΌμ μ§μ νλ€.
β
5. :focus κ°μ ν΄λμ€ μ νμ - μΉ μμμ μ΄μ μ΄ λ§μΆμ΄μ‘μ λμ μ€νμΌ μ μ©
μΉ μμμ μ΄μ μ΄ λ§μΆμ΄μ‘μ λμ μ€νμΌμ μ§μ νλ€. μλ₯Ό λ€μ΄ μμ΄λλ₯Ό μ λ ₯νκΈ° μν΄ ν μ€νΈ νλ μμ λ§μ°μ€ 컀μλ₯Ό κ°λ€ λκ±°λ tabμ λλ¬ μ΄μ μ μ΄λνμ λμ μ€νμΌμ μ§μ νλ€.
β
κ°μ μ νμλ₯Ό λ§ν¬μ κ΄λ ¨ν΄ μ¬μ©ν λλ μ νμ μμμ μ£Όμν΄μΌ νλ€. μμμ μ΄ν΄λ³Έ 1~4 λ€ κ°μ§λ₯Ό λͺ¨λ μ μνλ€λ©΄ :link μ νμλΆν° μ μνκ³ :visited, :hover, :active μμλλ‘ μ μνλ€. μ΄ μμκ° λ°λλ©΄ μ€νμΌμ μ μνλλΌλ μ λλ‘ μ μ©λμ§ μλλ€.
β
<style>
.navi a:link, .navi a:visited { /* λ§ν¬(a:link)μ λ°©λ¬Ένλ λ§ν¬(a:visited)μ μ€νμΌ μ§μ */
font-size:14px;
padding: 10px;
text-decoration: none; /* λ°μ€ μμ */
}
.navi a:hover, .navi a:focus { /* λ§ν¬ μλ‘ λ§μ°μ€λ₯Ό μ¬λ €λκ±°λ(a:hover) μ΄μ μ λ§μ·μ λ(a:focus)μ μ€νμΌ μ§μ */
background-color:#222; /* λ°°κ²½ μ */
color:#fff; /* κΈμ μ */
}
.navi a:active { /* λ§ν¬λ₯Ό ν΄λ¦νμ λ(a:active)μ μ€νμΌ μ§μ */
background-color:#f00; /* λ°°κ²½ μ */
}
</style>
<body>
<div class="container">
<nav class="navi">
<ul>
<li><a href="#">μ΄μ© μλ΄</a></li>
<li><a href="#">κ°μ€ μκ°</a></li>
<li><a href="#">μμ½ λ°©λ² λ° μκΈ</a></li>
<li><a href="#">μμ½νκΈ°</a></li>
</ul>
</nav>
</div>
<body>
β
*UI μμ μνμ λ°λ₯Έ κ°μ ν΄λμ€
μ¬μ©μμ λμλΏλ§ μλλΌ μΉ μμμ μνμ λ°λΌ μ€νμΌμ μ§μ ν λλ κ°μ ν΄λμ€ μ νμλ₯Ό μ¬μ©νλ€. κ·Έμ€μμλ UI(User Interface) μμμ μνμ λ°λ₯Έ κ°μ ν΄λμ€λ μΉ μ¬μ΄νΈλ μ± νλ©΄μ λμμΈν λ μΉ μμμ μνμ λ°λΌ μ€νμΌμ μ§μ νκΈ° μν΄ μ¬μ©νλ€.
β
- :enabled μ :disabled κ°μ ν΄λμ€ μ νμ - μμλ₯Ό μ¬μ©ν μ μμ λμ μμ λμ μ€νμΌ μ§μ
ν΄λΉ μμκ° μ¬μ© κ°λ₯ν μνμΌ λμ μ€νμΌμ μ§μ νλ €λ©΄ :enabled ν΄λμ€λ₯Ό μ¬μ©νκ³ ν΄λΉ μμκ° μ¬μ© λΆκ°λ₯ν μνμΌ λμ μ€νμΌμ μ§μ νλ €λ©΄ :disabled ν΄λμ€λ₯Ό μ¬μ©νλ€. μλ₯Ό λ€μ΄ μ¬λ¬ μ€μ ν μ€νΈλ₯Ό μ λ ₯ν μ μλ ν μ€νΈ μμ νλ(textarea νλ)λ₯Ό κ²μν μ λ ₯ νλ©΄μΌλ‘ μ¬μ©ν λλ enabled μνμ΄μ§λ§ νμ μ½κ΄ λ±μ 보μ¬μ€ λλ μ¬μ©μκ° λ΄μ©μ λ³΄κΈ°λ§ ν΄μΌ νλ―λ‘ disabled μνλ‘ λ§λ€μ΄μΌ νλ€.
β
- :checked κ°μ ν΄λμ€ μ νμ - λΌλμ€ λ°μ€λ μ²΄ν¬ λ°μ€μμ ν΄λΉ νλͺ©μ μ ννμ λμ μ€νμΌ μ§μ
λΌλμ€ λ°μ€λ μ²΄ν¬ λ°μ€μμ μ¬μ©μκ° ν΄λΉ νλͺ©μ μ ννμ λ(체ν¬νμ λ)μ μ€νμΌμ μ§μ νλ€.
β
<style>
input:disabled {
background:#ddd;
border:1px #ccc solid;
}
input:checked + span {
color:blue;
}
</style>
<body>
<form>
<fieldset>
<legend>μ¬μ©μ μ 보</legend>
<label>μ΄λ¦ <input type="text" disabled></label>
</fieldset>
<fieldset>
<legend>μ μ² κ³Όλͺ©</legend>
<p>μ΄ λ¬μ μ μ²ν κ³Όλͺ©μ μ ννμΈμ</p>
<label><input type="radio" name="subject" value="speaking"><span>νν</span></label>
<label><input type="radio" name="subject" value="grammar"><span>λ¬Έλ²</span></label>
<label><input type="radio" name="subject" value="writing"><span>μλ¬Έ</span></label>
</fieldset>
</form>
</body>
β
β
*ꡬ쑰 κ°μ ν΄λμ€
ꡬ쑰 κ°μ ν΄λμ€λ λ§ κ·Έλλ‘ μΉ λ¬Έμ ꡬ쑰λ₯Ό κΈ°μ€μΌλ‘ νΉμ μμΉμ μλ μμλ₯Ό μ°Ύμ μ€νμΌμ μ§μ ν λ μ¬μ©νλ κ°μ ν΄λμ€ μ νμμ΄λ€.
β
- :root κ°μ ν΄λμ€ μ νμ - λ¬Έμ μ 체μ μ μ©νκΈ°
λ¬Έμ μμ 루νΈ(root) μμμ μ€νμΌμ μ μ©νλ€.
β
- :nth-child(n)μ :nth-last-child(n) κ°μ ν΄λμ€ μ νμ - μμ μμμ μμΉμ λ°λΌ μ€νμΌ μ μ©νκΈ°
μΉ λ¬Έμμμ νΉμ λΆλΆμ μ€νμΌμ μ μ©νλ €λ©΄ λ³΄ν΅ classλ id μ νμλ₯Ό μ΄μ©ν΄ μ΄λ¦μ λΆμ¬ μ£Όκ³ κ·Έ ν΄λμ€λ idμ λν μ€νμΌμ μ μνλ©΄ λλ€. νμ§λ§ μ¬λ¬ κ°μ νλͺ©μ΄ μΌλ ¬(κ°λ‘λ μΈλ‘)λ‘ λμ΄λμ΄ μλ κ²½μ°, classλ idλ₯Ό μ¬μ©νμ§ μκ³ μ€νμΌμ μ§μ ν νλͺ©μ΄ λͺ λ²μ§Έμ μλμ§λ₯Ό λ°μ Έ μ€νμΌμ μ μ©ν μ μλ€. μ£Όλ‘ λ©λ΄ νλͺ©μ μ΄ μ νμλ₯Ό μ¬μ©νλ€.
:nth-child(n)λ μμμλΆν° nλ²μ§Έ μμ μμμ μ€νμΌμ μ μ©νκ³ :nth-last-child(n)λ λμμλΆν° nλ²μ§ΈμΈ μμ μμμ μ€νμΌμ μ μ©νλ€. an+bμ²λΌ μμμ μ¬μ©ν μλ μλλ° μ΄λ nκ°μ 0λΆν° μ°¨λ‘λλ‘ μ μλ₯Ό λμ ν΄ κ³μ°νλ€. λ€λ§, μμΉμ λ°λΌ μ€νμΌμ μ μ©νλ μ νμλ ν΄λΉ μμλ€μ΄ λͺ¨λ ν λΆλͺ¨ μμλ₯Ό κ°κ³ μμ΄μΌλ§ νλ€. μ¦, λ¬Έμ κ΅¬μ‘°λ‘ νμνμ λ λͺ¨λ κ°μ λ 벨μ μμμ¬μΌ νλ€.
β
<style>
table tr:nth-child(2n+1) {
background:lightgray;
color:black;
}
</style>
<body>
<div id="container">
<h1>건κ°μ μ’μ κ±΄κ° μν</h1>
<table>
<tr><td>λΈλ£¨λ² 리</td></tr>
<tr><td>κ·λ¦¬</td></tr>
<tr><td>ν λ§ν </td></tr>
<tr><td>μκΈμΉ</td></tr>
<tr><td>μ ν¬λμ£Ό</td></tr>
<tr><td>견과λ₯</td></tr>
<tr><td>λΈλ‘μ½λ¦¬</td></tr>
<tr><td>μ°μ΄</td></tr>
<tr><td>λ§λ</td></tr>
<tr><td>λ
Ήμ°¨</td></tr>
</table>
</div>
</body>
β
- :nth-of-type(n), :nth-last-of-type(n) κ°μ ν΄λμ€ μ νμ - νΉμ νκ·Έ μμΉμ μ€νμΌ μ μ©νκΈ°
<p> νκ·Έλ <li> νκ·Έκ° μ¬λ¬ κ° λμ΄λμ΄ μκ³ κ° νκ·Έμ idλ classλ₯Ό μ¬μ©νμ§ μλ μνμμ λͺ λ²μ§Έμ μλ <p> νκ·Έ λλ λͺ λ²μ§Έμ μλ <li> νκ·Έμ²λΌ νκ·Έμ λ°λΌ λͺ λ²μ§Έμ μλ νλͺ©μΈμ§λ₯Ό μ§μ ν΄ μ€νμΌμ μ μ©ν λ μ΄ κ°μ ν΄λμ€ μ νμλ₯Ό μ¬μ©νλ€. :nth-of-type(n)μ μμμλΆν° μΈμ΄ nλ²μ§Έ μμμ΄κ³ :nth-last-of-type(n)μ λμμλΆν° μΈμ΄ nλ²μ§Έ μμμ μ€νμΌμ μ μ©νλ€.
β
- :first-child, :last-child κ°μ ν΄λμ€ μ νμ - 첫 λ²μ§Έ, λ§μ§λ§ μμμ μ€νμΌ μ μ©νκΈ°
:first-childλ 첫 λ²μ§Έ μμ μμλ₯Ό μ νν΄ μ€νμΌμ μ μ©νκ³ :last-childλ λ§μ§λ§ μμ μμμ μ€νμΌμ μ μ©νλ€. μλ₯Ό λ€μ΄ section p:first-childλ sectionμ p μμ μμλ€ μ€ μ²« λ²μ§Έ p μμ μμλ₯Ό κ°λ¦¬ν¨λ€.
β
<style>
ul.navi li:first-child {
border-top-left-radius: 1em; /* μΌμͺ½ μλ¨ μ½λλ₯Ό λΆλλ½κ² */
border-bottom-left-radius: 1em; /* μΌμͺ½ νλ¨ μ½λλ₯Ό λΆλλ½κ² */
}
/* λ§μ§λ§ νλͺ©μ μ€νμΌ */
ul.navi li:last-child {
border-top-right-radius: 1em; /*μ€λ₯Έμͺ½ μλ¨ μ½λλ₯Ό λΆλλ½κ² */
border-bottom-right-radius: 1em; /* μ€λ₯Έμͺ½ νλ¨ μ½λλ₯Ό λΆλλ½κ² */
}
</style>
<body>
<div>
<ul class="navi">
<li class="home"><a href="#">Home</a></li>
<li id="html"><a href="#">HTML5</a></li>
<li id="css"><a href="#">CSS3</a></li>
<li id="jquery"><a href="#">JQuery</a></li>
</ul>
</div>
</body>
β
- :first-of-type, :last-of-type κ°μ ν΄λμ€ μ νμ - νμ κ΄κ³ μμμ μμΉμ λ°λΌ μ€νμΌ μ μ©νκΈ°
νμ κ΄κ³μΈ μμ μ€μμ :first-of-typeμ 첫 λ²μ§Έ μμ, :last-of-typeμ λ§μ§λ§ μμμ μ€νμΌμ μ μ©νλ€.
λ€μ μμμμ 첫 λ²μ§Έ μμ€λ λ λ²¨μ΄ κ°μ p μμλ€ μ€ μ²« λ²μ§Έ p μμμ κΈμ μμ νλμμΌλ‘ μ§μ νλ μ νμμ΄κ³ λ λ²μ§Έ μμ€λ λ λ²¨μ΄ κ°μ p μμλ€ μ€ λ§μ§λ§ p μμμ κΈμ μμ λΉ¨κ°μμΌλ‘ μ§μ νλ μ νμμ΄λ€.
p:first-of-type { color: blue; } p:last-of-type { color: red; } |
β
- :only-child, :only-of-type κ°μ ν΄λμ€ μ νμ - νλλΏμΈ μμ μμμ μ€νμΌ μ μ©νκΈ°
:only-childλ λΆλͺ¨ μμ μμ μμ μμκ° μ μΌνκ² νλμΌ λ μ€νμΌμ μ μ©νλ©° :only-of-typeμ :only-childμ λΉμ·νλ° ν΄λΉ μμκ° μ μΌν μμμΌ λ μ€νμΌμ μ μ©νλ€. λ€μ μμμμ 첫 λ²μ§Έ μμ€λ μμ μμκ° μ€μ§ p μμλΏμΌ λ(λ€λ₯Έ μμ μμκ° μμΌλ©΄ μ λ¨) p μμμ κΈμλ₯Ό λ ΉμμΌλ‘ νμνκ³ λ λ²μ§Έ μμ€λ p μμκ° μ€μ§ νλλΏμΌ λ(λ€λ₯Έ μμ μμκ° μμ΄λ λ¨)μμ p μμμ κΈμλ₯Ό μ§νκ² νμνλ€.
p:only-child { color: green; } p:only-of-type { font-weight: bold; } |
β
β
*κ·Έ μΈ κ°μ ν΄λμ€
β
- :target κ°μ ν΄λμ€ μ νμ - μ΅μ»€ λͺ©μ μ§μ μ€νμΌ μ μ©νκΈ°
μΉ λ¬Έμμμ κ°μ μ¬μ΄νΈμ νμ΄μ§λ λ€λ₯Έ μ¬μ΄νΈμ νμ΄μ§λ‘ μ΄λν λ λ§ν¬(link)λ₯Ό μ΄μ©νκ³ κ°μ λ¬Έμ μμμ λ€λ₯Έ μμΉλ‘ μ΄λν λλ μ΅μ»€(anchor)λ₯Ό μ΄μ©νλ€. μ΄ λ target μ νμλ₯Ό μ΄μ©νλ©΄ μ΅μ»€λ‘ μ°κ²°λ λΆλΆ, μ¦ μ΅μ»€μ λͺ©μ μ§κ° λλ λΆλΆμ μ€νμΌμ μ§μ ν μ μλ€.
#intro:target { background-color: yellow; } |
β
- :not κ°μ ν΄λμ€ μ νμ - νΉμ μμκ° μλ λ μ€νμΌ μ μ©νκΈ°
:not μ νμλ μ΄λ¦μμλ μ μ μλ―μ΄ λΆμ μ μλ―Έκ° μλ€. μ¬κΈ°μ notμ 'κ΄νΈ μμ μλ μμλ₯Ό μ μΈν'μ΄λΌλ μλ―Έμ΄λ€. λ€μ μμ€λ #exκ° μλ λͺ¨λ p μμμμμ κΈμμμ νλμμΌλ‘ μ§μ νλ μ€νμΌμ΄λ€.
β
p:not(#ex) { color: blue; } |
β
β
*κ°μ μμ
κ°μ μμλ λ΄μ©μ μΌλΆλ§ μ νν΄ μ€νμΌμ μ μ©ν λ μ¬μ©νλ€. κ°μ μμλ κ°μ ν΄λμ€μ ꡬλ³νκΈ° μν΄ ν΄λμ€ μ΄λ¦ μμ μ½λ‘ λ κ°(::)λ₯Ό λΆμ¬ νμνλ€.
β
- ::first-line μμμ ::first-letter μμ - 첫 λ²μ§Έ μ€, 첫 λ²μ§Έ κΈμμ μ€νμΌ μ μ©νκΈ°
μ΄ μμλ€μ μ¬μ©νλ©΄ μ§μ ν μμμ 첫 λ²μ§Έ μ€(::first-line)μ΄λ 첫 λ²μ§Έ κΈμ(::first-letter)μ μ€νμΌμ μ½κ² μ μ©ν μ μλ€. ::first-letter μμλ ν΄λΉ μμμ 첫 λ²μ§Έ κΈμλ₯Ό κ°λ¦¬ν€λλ° μ²« λ²μ§Έ κΈμλ λ°λμ 첫 λ²μ§Έ μ€μ μμ΄μΌ νλ€. λ§μ½ <p> νκ·Έ μμ <br> νκ·Έκ° μμ΄ μ²« λ²μ§Έ κΈμκ° μ²« λ²μ§Έ μ€μ μμ κ²½μ°, μ μ©ν μ μλ€.
β
- ::before, ::after μμ - λ΄μ©μ μλ€μ μ½ν μΈ μΆκ°νκΈ°
μ΄ μμλ₯Ό μ¬μ©νλ©΄ νΉμ μμμ λ΄μ© μ(:;before)μ΄λ λ€(::after)μ μ§μ ν λ΄μ©μ λ£μ μ μλ€. λ€μ λ§ν΄ μμμ μλ€μ ν μ€νΈλ μ΄λ―Έμ§ λ±μ μΆκ°ν μ μλ€.
λ€μ μμ λ ::after κ°μ μμλ₯Ό μ¬μ©ν΄ μ ν λͺ©λ‘μ 'NEW!!'λΌλ ν μ€νΈλ₯Ό μΆκ°ν κ²μ΄λ€. 'NEW!!'λΌλ λ΄μ©μ νλ©΄μ νμνκΈ° μν΄ μ€μ λ‘ HTML νκ·Έλ₯Ό μ¬μ©νκ³ μμ§λ μμ§λ§ κ°μ μμλ₯Ό μ¬μ©νλ©΄ μ½κ² μ€νμΌμ μ μ©ν μ μλ€.
β
<style>
ul li {
margin:15px;
}
li.hot::after {
content:"NEW!!";
font-size:x-small;
padding:2px 4px;
margin: 0 10px;
border-radius:2px;
background:#f00;
color:#fff;
}
</style>
<body>
<div class="container">
<h1>μ ν λͺ©λ‘</h1>
<ul>
<li class="hot">μ ν A</li>
<li>μ ν B</li>
<li>μ ν C</li>
<li class="hot">μ ν D</li>
</ul>
</div>
</body>
'HTML5 & CSS3' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[HTML5 & CSS3] λ³νκ³Ό κ΄λ ¨λ μμ±λ€ (0) | 2021.02.14 |
---|---|
[HTML5 & CSS3] λ³ν (0) | 2021.02.14 |
[HTML5 & CSS3] μμ± μ νμ (0) | 2021.02.14 |
[HTML5 & CSS3] μ°κ²° μ νμ (0) | 2021.02.14 |
[HTML5 & CSS3] μ€λμ€ & λΉλμ€ μ¬μνκΈ° (0) | 2021.02.14 |
λκΈ