CSS κ°μ μμ μ νμλ HTML μμμ μΆκ° μ½ν μΈ λ μ€νμΌμ μ½μ νμ¬ λμμΈμ μ μ°νκ² ν©λλ€. ::beforeμ ::afterλ νΉν λ€μν μ€νμΌλ§μ νμ©λ©λλ€. μ΄ κ°μ΄λμμλ κΈ°λ³ΈλΆν° κ³ κΈ νμ©λ²κΉμ§ μμΈν λ€λ£Ήλλ€.
β£ λͺ©μ°¨
CSS κ°μ μμ μ νμ κΈ°λ³Έ κ°λ π
κ°μ μμ μ νμλ HTML λ¬Έμμ μ€μ λ‘ μ‘΄μ¬νμ§ μλ μμλ₯Ό μμ±νμ¬ μ€νμΌμ μ μ©ν μ μμ΅λλ€. ::beforeμ ::afterλ νΉμ μμμ μμ΄λ λ€μ μ½ν μΈ λ₯Ό μ½μ ν λ μ¬μ©λ©λλ€. μ΄ μ νμμ κΈ°λ³Έ λ¬Έλ²μ λ€μκ³Ό κ°μ΅λλ€:
selector::before {
content: "content";
/* additional styles */
}
selector::after {
content: "content";
/* additional styles */
}
::beforeμ ::afterμ μ°¨μ΄μ π₯
- ::before: μ νν μμμ λ΄μ© μμ μ½μ λ©λλ€.
- ::after: μ νν μμμ λ΄μ© λ€μ μ½μ λ©λλ€.
λ κ°μ μμλ λΉμ·νκ² λμνμ§λ§, μ½ν μΈ κ° μ½μ λλ μμΉκ° λ€λ¦ λλ€. μλ₯Ό λ€μ΄, λ€μ μ½λλ p μμμ λ΄μ© μκ³Ό λ€μ ν μ€νΈλ₯Ό μ½μ ν©λλ€.
<p>Hello, world!</p>
<style>
p::before {
content: "Before: ";
color: blue;
}
p::after {
content: " :After";
color: red;
}
</style>
μμ μ½λλ λ€μκ³Ό κ°μ΄ νμλ©λλ€.
Before: Hello, world! :After
::beforeμ ::after μ¬μ©λ²π
κΈ°λ³Έ μ¬μ©λ²
κ°μ₯ κΈ°λ³Έμ μΈ μ¬μ©λ²μ content μμ±μ ν΅ν΄ ν μ€νΈλ₯Ό μ½μ νλ κ²μ λλ€. μλ₯Ό λ€μ΄, νΉμ μμ μμ μ¬λ²μ μΆκ°νκ³ μΆλ€λ©΄ λ€μκ³Ό κ°μ΄ ν μ μμ΅λλ€.
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
<style>
li::before {
content: "• ";
color: green;
}
</style>
μ΄ μ½λλ κ° λͺ©λ‘ νλͺ© μμ λ Ήμ μ μ μΆκ°ν©λλ€.
μ½ν μΈ μ½μ λ°©λ²
κ°μ μμλ ν μ€νΈλΏλ§ μλλΌ μ΄λ―Έμ§, μ¬λ³Ό λ± λ€μν μ½ν μΈ λ₯Ό μ½μ ν μ μμ΅λλ€.
h1::after {
content: url('star.png');
display: inline-block;
margin-left: 10px;
}
μ€νμΌλ§ λ°©λ²
κ°μ μμλ μΌλ° μμμ²λΌ μ€νμΌλ§ν μ μμ΅λλ€. μμ, ν¬κΈ°, μμΉ λ±μ μμ λ‘κ² μ‘°μ ν μ μμ΅λλ€.
button::before {
content: "βΆ ";
color: blue;
font-size: 20px;
}
::beforeμ ::after μμ π
λ²νΌμ μμ΄μ½ μΆκ°νκΈ°
<button>Click Me</button>
<style>
button::before {
content: "π";
margin-right: 8px;
}
</style>
λ€μν μ€νμΌλ§ μμ
κ°μ μμλ₯Ό μ¬μ©νμ¬ μΉ΄λ λμμΈμ κΎΈλ―Έλ μμ μ λλ€.
<div class="card">
<h2>Title</h2>
<p>Description</p>
</div>
<style>
.card {
position: relative;
padding: 20px;
border: 1px solid #ccc;
}
.card::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('pattern.png');
opacity: 0.1;
}
</style>
κ³ κΈ νμ©λ²
κ°μ μμμ μ λλ©μ΄μ μ μ μ©νμ¬ μλμ μΈ λμμΈμ ꡬνν μ μμ΅λλ€.
button::after {
content: "";
display: block;
width: 0;
height: 2px;
background: red;
transition: width 0.3s;
}
button:hover::after {
width: 100%;
}
λ°μν λμμΈμμμ νμ©λ²
λ°μν λμμΈμμ κ°μ μμλ₯Ό μ¬μ©νμ¬ λ€μν νλ©΄ ν¬κΈ°μ λμνλ μ€νμΌμ μ μ©ν μ μμ΅λλ€.
@media (max-width: 600px) {
.card::before {
background: none;
}
}
CSS λ³μλ₯Ό μ¬μ©ν λμ μ€νμΌλ§
CSS λ³μλ₯Ό μ¬μ©νμ¬ κ°μ μμμ μ€νμΌμ λμ μΌλ‘ λ³κ²½ν μ μμ΅λλ€.
:root {
--primary-color: blue;
}
button::before {
content: "β‘οΈ ";
color: var(--primary-color);
}
μμ£Ό λ°μνλ λ¬Έμ λ° ν΄κ²° λ°©λ²π
κ°μ μμκ° μ μ©λμ§ μμ λ
κ°μ μμκ° μ μ©λμ§ μλ κ²½μ°, λΆλͺ¨ μμμ position μμ±μ μ€μ ν΄ λ³΄μΈμ.
μ¬κΈ°μ position μμ±μ μμλ₯Ό λ¬Έμμ νΉμ μμΉμ λ°°μΉνλ λ°©λ²μ μ§μ ν©λλ€. λ§μ½ λΆλͺ¨ μμμ position μμ±μ΄ μ§μ λμ§ μμΌλ©΄, κ°μ μμκ° μ λλ‘ νμλμ§ μμ μ μμ΅λλ€.
μλ₯Ό λ€μ΄, λΆλͺ¨ μμμ position: relative;λ₯Ό μ€μ νλ©΄, κ·Έ μμ ν¬ν¨λ μμ μμλ€μ ν΄λΉ λΆλͺ¨ μμλ₯Ό κΈ°μ€μΌλ‘ μμΉκ° κ²°μ λ©λλ€. μ΄λ κ² ν¨μΌλ‘μ¨ κ°μ μμλ λΆλͺ¨ μμλ₯Ό κΈ°μ€μΌλ‘ μ νν μμΉμ νμλ μ μμ΅λλ€.
κ°λ¨νκ² λ§ν΄, position μμ±μ λΆλͺ¨ μμμ μ€μ ν¨μΌλ‘μ¨, κ°μ μμκ° λΆλͺ¨ μμμ μμΉλ₯Ό κΈ°μ€μΌλ‘ μ λλ‘ νμλ μ μλλ‘ λμμ€λλ€.
.parent {
position: relative;
}
λ μ΄μμ κΉ¨μ§ λ¬Έμ ν΄κ²°
κ°μ μμκ° λ μ΄μμμ κΉ¨λ¨λ¦΄ λλ display μμ±μ μ‘°μ ν΄ λ³΄μΈμ.
μΌλ°μ μΌλ‘ κ°μ μμλ display: inline; μμ±μ κ°κ³ μμ΅λλ€. μ΄λ κ°μ μμκ° ν
μ€νΈμ κ°μ΄ ν λ΄μ μμΉνλλ‘ ν©λλ€. νμ§λ§ λλλ‘ μ΄λ¬ν κΈ°λ³Έ μ€μ μ΄ λ μ΄μμμ κΉ¨λ¨λ¦΄ μ μμ΅λλ€.
λ μ΄μμμ΄ κΉ¨μ§ λλ, κ°μ μμμ display μμ±μ blockμ΄λ inline-block λ±μΌλ‘ λ³κ²½νμ¬ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ κ°μ μμκ° λΈλ‘ μμ€ μμμ²λΌ λμνκ² λ§λ€μ΄ λ μ΄μμμ΄ κΉ¨μ§μ§ μλλ‘ ν μ μμ΅λλ€.
κ°λ¨ν λ§ν΄, display μμ±μ μ μ ν μ‘°μ νμ¬ κ°μ μμκ° μνλ λ μ΄μμμ μ μ§νλλ‘ μ€μ νμΈμ.
element::before {
display: inline-block;
}
ν΅μ¬ λ΄μ©π