XML λ¬Έμ μ€νμΌλ§μ μν CSS λ€μμ€νμ΄μ€ κ·μΉμ μ’ ν© κ°μ΄λμ λλ€. ꡬ문, μ€μ μμ , κ΅μ°¨ λΈλΌμ°μ νΈνμ±μ μν λͺ¨λ² μ¬λ‘λ₯Ό λ€λ£Ήλλ€.
CSS λ€μμ€νμ΄μ€ κ·μΉ: CSSλ‘ XML μ€νμΌλ§νκΈ°
@namespace
λ‘ νμλλ CSS λ€μμ€νμ΄μ€ κ·μΉμ CSS μ€νμΌ κ·μΉμ νΉμ XML λ€μμ€νμ΄μ€μ μ°κ²°νλ λ©μ»€λμ¦μ μ 곡ν©λλ€. μ΄ κ°λ ₯ν κΈ°λ₯μ ν΅ν΄ κ°λ°μλ CSSλ₯Ό μ¬μ©νμ¬ XML λ¬Έμλ₯Ό μ€νμΌλ§ν μ μμΌλ©°, XML λ°μ΄ν°λ₯Ό μκ°μ μΌλ‘ λ§€λ ₯μ μΈ λ°©μμΌλ‘ νννλ μ μ°νκ³ ν¨μ¨μ μΈ λ°©λ²μ μ 곡ν©λλ€. μ΄ κ°μ΄λλ ꡬ문, μ€μ μμ , λͺ¨λ² μ¬λ‘λ₯Ό ν¬ν¨νμ¬ CSS λ€μμ€νμ΄μ€ κ·μΉμ λν ν¬κ΄μ μΈ κ°μλ₯Ό μ 곡ν©λλ€.
XML λ€μμ€νμ΄μ€ μ΄ν΄νκΈ°
CSS λ€μμ€νμ΄μ€ κ·μΉμ μ΄ν΄λ³΄κΈ° μ μ XML λ€μμ€νμ΄μ€μ κ°λ
μ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€. XML λ€μμ€νμ΄μ€λ λ¨μΌ XML λ¬Έμ λ΄μμ λ€λ₯Έ μμ€μ μμμ μμ±μ μ¬μ©ν λ μ΄λ¦ μΆ©λμ νΌνλ λ°©λ²μ μ 곡ν©λλ€. λ€μμ€νμ΄μ€λ μΌλ°μ μΌλ‘ XML λ¬Έμμ λ£¨νΈ μμλ λ€μμ€νμ΄μ€λ₯Ό μ μ©ν΄μΌ νλ λͺ¨λ μμμ xmlns
μμ±μ μ¬μ©νμ¬ μ μΈλ©λλ€.
μλ₯Ό λ€μ΄, λ€μ XML μ€λν«μ μ΄ν΄λ³΄κ² μ΅λλ€:
<book xmlns="http://example.com/book">
<title>The Hitchhiker's Guide to the Galaxy</title>
<author>Douglas Adams</author>
</book>
μ΄ μμ μμ xmlns
μμ±μ book
μμμ κ·Έ μμ μμμ λν κΈ°λ³Έ λ€μμ€νμ΄μ€λ₯Ό μ μΈν©λλ€. λͺ
μμ μΈ λ€μμ€νμ΄μ€ μ λμ¬κ° μλ λͺ¨λ μμλ μ΄ λ€μμ€νμ΄μ€μ μν©λλ€. μ λμ¬λ₯Ό μ¬μ©ν μλ μμ΅λλ€:
<bk:book xmlns:bk="http://example.com/book">
<bk:title>The Hitchhiker's Guide to the Galaxy</bk:title>
<bk:author>Douglas Adams</bk:author>
</bk:book>
μ¬κΈ°μ 'bk' μ λμ¬λ λ€μμ€νμ΄μ€μ μ°κ²°λ©λλ€. μ΄μ ν΄λΉ λ€μμ€νμ΄μ€μ λͺ¨λ μμλ μ λμ¬λ₯Ό κ°κ² λ©λλ€.
@namespace
κ·μΉ
CSSμ @namespace
κ·μΉμ μ¬μ©νλ©΄ λ€μμ€νμ΄μ€ URIλ₯Ό λ€μμ€νμ΄μ€ μ λμ¬μ μ°κ²°ν μ μμ΅λλ€. μ΄ μ λμ¬λ CSS μ νμμμ ν΄λΉ λ€μμ€νμ΄μ€ λ΄μ μμλ₯Ό λμμΌλ‘ μ§μ νλ λ° μ¬μ©ν μ μμ΅λλ€. @namespace
κ·μΉμ κΈ°λ³Έ ꡬ문μ λ€μκ³Ό κ°μ΅λλ€:
@namespace prefix "namespace-uri";
- μ λμ¬(prefix): CSS μ νμμμ μ¬μ©ν λ€μμ€νμ΄μ€ μ λμ¬μ λλ€. μ ν¨ν CSS μλ³μλΌλ©΄ 무μμ΄λ κ°λ₯ν©λλ€.
- λ€μμ€νμ΄μ€ URI(namespace-uri): λμ XML λ€μμ€νμ΄μ€μ URIμ λλ€. μμλ°μ΄νλ ν°λ°μ΄νλ‘ λ¬ΆμΈ λ¬Έμμ΄μ΄μ΄μΌ ν©λλ€.
μλ₯Ό λ€μ΄, μ λμ¬ bk
λ₯Ό λ€μμ€νμ΄μ€ http://example.com/book
μ μ°κ²°νλ €λ©΄ λ€μ @namespace
κ·μΉμ μ¬μ©ν©λλ€:
@namespace bk "http://example.com/book";
CSS μ νμμμ λ€μμ€νμ΄μ€ μ¬μ©νκΈ°
λ€μμ€νμ΄μ€ μ λμ¬λ₯Ό μ μΈν νμλ CSS μ νμμμ μ΄λ₯Ό μ¬μ©νμ¬ ν΄λΉ λ€μμ€νμ΄μ€ λ΄μ μμλ₯Ό λμμΌλ‘ μ§μ ν μ μμ΅λλ€. ꡬ문μ λ€μκ³Ό κ°μ΅λλ€:
prefix|element { /* CSS rules */ }
μ¬κΈ°μ prefix
λ λ€μμ€νμ΄μ€ μ λμ¬μ΄κ³ element
λ λμμΌλ‘ μ§μ νλ €λ μμμ μ΄λ¦μ
λλ€. μμ§ λ§λ(|
)λ μ λμ¬μ μμ μ΄λ¦μ ꡬλΆν©λλ€.
μλ₯Ό λ€μ΄, http://example.com/book
λ€μμ€νμ΄μ€ λ΄μ λͺ¨λ title
μμλ₯Ό μ€νμΌλ§νλ €λ©΄ λ€μ CSS κ·μΉμ μ¬μ©ν©λλ€:
@namespace bk "http://example.com/book";
bk|title {
font-size: 1.2em;
font-weight: bold;
}
μ΄ κ·μΉμ http://example.com/book
λ€μμ€νμ΄μ€μ μνλ title
μμμλ§ μ§μ λ μ€νμΌμ μ μ©ν©λλ€.
λ€μμ€νμ΄μ€ λ΄ μμ± νκ²ν νκΈ°
CSSλ₯Ό μ¬μ©νμ¬ νΉμ λ€μμ€νμ΄μ€ λ΄μ μμ±μ λμμΌλ‘ μ§μ ν μλ μμ΅λλ€. ꡬ문μ μμλ₯Ό λμμΌλ‘ νλ κ²κ³Ό μ μ¬ν©λλ€:
prefix|element[prefix|attribute] { /* CSS rules */ }
μλ₯Ό λ€μ΄, http://example.com/book
λ€μμ€νμ΄μ€ λ΄μ id
λΌλ μμ±μ΄ μλ€λ©΄ λ€μκ³Ό κ°μ΄ λμμΌλ‘ μ§μ ν μ μμ΅λλ€:
@namespace bk "http://example.com/book";
bk|book[bk|id] {
border: 1px solid black;
}
κΈ°λ³Έ λ€μμ€νμ΄μ€
XML λ¬Έμκ° κΈ°λ³Έ λ€μμ€νμ΄μ€(μ λμ¬ μμ)λ₯Ό μ μΈν λ, λ³ν(*
)λ₯Ό μ λμ¬λ‘ μ¬μ©νμ¬ ν΄λΉ λ€μμ€νμ΄μ€μ μμλ₯Ό λμμΌλ‘ μ§μ ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, λ€μκ³Ό κ°μ XMLμ΄ μλ κ²½μ°:
<book xmlns="http://example.com/book">
<title>The Hitchhiker's Guide to the Galaxy</title>
<author>Douglas Adams</author>
</book>
λ€μ CSSλ₯Ό μ¬μ©νμ¬ title
μμλ₯Ό μ€νμΌλ§ν μ μμ΅λλ€:
@namespace "http://example.com/book";
*|title {
color: blue;
}
XML λ¬Έμκ° κΈ°λ³Έ λ€μμ€νμ΄μ€λ₯Ό μ μνλλΌλ, *|
μ νμλ₯Ό μ¬μ©ν λμλ CSSμμ @namespace
λ₯Ό μ¬μ©νμ¬ λ€μμ€νμ΄μ€λ₯Ό μ μΈν΄μΌ ν©λλ€.
|element
μ νμ
|element
μ νμλ *μ΄λ€* λ€μμ€νμ΄μ€μ μλ ν΄λΉ μμλ₯Ό λμμΌλ‘ ν©λλ€. μ΄λ νΉμ λ€μμ€νμ΄μ€μ κ΄κ³μμ΄ μμμ μ€νμΌμ μ μ©ν λ μ μ©ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄:
|title {
text-transform: uppercase;
}
μ΄κ²μ μ΄λ€ λ€μμ€νμ΄μ€μ μλ 'title'μ΄λΌλ μ΄λ¦μ λͺ¨λ μμλ₯Ό λλ¬Έμλ‘ λ§λλλ€.
μ€μ μμ
μ¬λ¬ λ€μμ€νμ΄μ€κ° μλ λ 볡μ‘ν μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€. μ± λ€μμ€νμ΄μ€μ λ©νλ°μ΄ν° λ€μμ€νμ΄μ€μ μμκ° κ²°ν©λ XML λ¬Έμκ° μλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€:
<book xmlns:bk="http://example.com/book" xmlns:meta="http://example.com/metadata">
<bk:title>The Lord of the Rings</bk:title>
<bk:author>J.R.R. Tolkien</bk:author>
<meta:publisher>Allen & Unwin</meta:publisher>
<meta:year>1954</meta:year>
</book>
μ΄ XML λ¬Έμλ₯Ό μ€νμΌλ§νλ €λ©΄ CSSμμ λ λ€μμ€νμ΄μ€λ₯Ό λͺ¨λ μ μΈν΄μΌ ν©λλ€:
@namespace bk "http://example.com/book";
@namespace meta "http://example.com/metadata";
bk|title {
font-size: 1.5em;
font-weight: bold;
}
bk|author {
font-style: italic;
}
meta|publisher {
color: green;
}
meta|year {
color: gray;
}
μ΄ CSS μ½λλ http://example.com/book
λ° http://example.com/metadata
λ€μμ€νμ΄μ€μ μμμ λν μ€νμΌμ μ μν©λλ€. μ λͺ©μ ν¬κ³ κ΅΅κ², μ μλ μ΄ν€λ¦μ²΄λ‘, μΆνμ¬λ λ
ΉμμΌλ‘, μ°λλ νμμΌλ‘ νμλ©λλ€.
CSS λ€μμ€νμ΄μ€λ‘ SVG μ€νμΌλ§νκΈ°
SVG(Scalable Vector Graphics)λ XML κΈ°λ° λ²‘ν° μ΄λ―Έμ§ νμμ λλ€. CSS λ€μμ€νμ΄μ€λ‘ SVGλ₯Ό μ€νμΌλ§νλ κ²μ λ§€μ° κ°λ ₯ν μ μμ΅λλ€. λ€μμ μμ μ λλ€:
<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
CSSλ λ€μκ³Ό κ°μ΅λλ€:
@namespace svg "http://www.w3.org/2000/svg";
svg|circle {
stroke: blue;
fill: orange;
}
svg|svg {
border: 1px solid black;
}
μ΄λ κ² νλ©΄ μμ ν λλ¦¬κ° νλμμΌλ‘, μ±μ°κΈ°κ° μ£Όν©μμΌλ‘ λ³κ²½λκ³ SVG μμμ ν λλ¦¬κ° μΆκ°λ©λλ€. CSSμμ SVG λ€μμ€νμ΄μ€λ₯Ό μ μΈν΄μΌ νλ€λ μ μ μ μνμΈμ.
λͺ¨λ² μ¬λ‘
- CSS νμΌ μλ¨μ λ€μμ€νμ΄μ€ μ μΈνκΈ°: μ΄λ κ² νλ©΄ μ½λλ₯Ό λ μ½κΈ° μ½κ³ μ μ§ κ΄λ¦¬νκΈ° μ½κ² λ§λλλ€.
- μλ―Έ μλ μ λμ¬ μ¬μ©νκΈ°: μ€λͺ μ μ΄κ³ μ΄ν΄νκΈ° μ¬μ΄ μ λμ¬λ₯Ό μ ννμΈμ. 'ns1'μ΄λ 'ns2'μ κ°μ μΌλ°μ μΈ μ λμ¬λ νΌνμΈμ.
- μ λμ¬ μΌκ΄μ± μ μ§νκΈ°: λ€μμ€νμ΄μ€μ λν μ λμ¬λ₯Ό μ ννλ€λ©΄ CSS νμΌ μ 체μμ μΌκ΄λκ² μ¬μ©νμΈμ.
- κΈ°λ³Έ λ€μμ€νμ΄μ€ κ³ λ €νκΈ°: XML λ¬Έμμ κΈ°λ³Έ λ€μμ€νμ΄μ€κ° μλ κ²½μ° CSS μ νμμμ λ³ν(
*
)λ₯Ό μ λμ¬λ‘ μ¬μ©ν΄μΌ ν¨μ κΈ°μ΅νμΈμ. - μ¬λ¬ λΈλΌμ°μ μμ ν μ€νΈνκΈ°: CSS λ€μμ€νμ΄μ€ κ·μΉμ λ리 μ§μλμ§λ§, κ΅μ°¨ λΈλΌμ°μ νΈνμ±μ 보μ₯νκΈ° μν΄ μ¬λ¬ λΈλΌμ°μ μμ μ½λλ₯Ό ν μ€νΈνλ κ²μ΄ νμ μ’μ΅λλ€.
- ꡬ체μ μΈ μ νμ μ¬μ©νκΈ°: λ무 μΌλ°μ μΈ μ νμλ μκΈ°μΉ μμ μ€νμΌλ§ λ¬Έμ λ₯Ό μΌμΌν¬ μ μμΌλ―λ‘ νΌνμΈμ. νΉμ λ€μμ€νμ΄μ€μ μμλ₯Ό λμμΌλ‘ ν λ κ°λ₯ν ν ꡬ체μ μΌλ‘ μ§μ νμΈμ.
λΈλΌμ°μ νΈνμ±
CSS λ€μμ€νμ΄μ€ κ·μΉμ Chrome, Firefox, Safari, Edgeλ₯Ό ν¬ν¨ν μ΅μ λΈλΌμ°μ μμ μΌλ°μ μΌλ‘ μ μ§μλ©λλ€. κ·Έλ¬λ μ΄μ λ²μ μ Internet Explorerλ λ€μμ€νμ΄μ€ κ·μΉμ λν μ§μμ΄ μ νμ μ΄κ±°λ μ ν μμ μ μμ΅λλ€. μ½λκ° μμλλ‘ μλνλμ§ νμΈνκΈ° μν΄ μ¬λ¬ λΈλΌμ°μ μμ μ² μ ν ν μ€νΈνλ κ²μ΄ μ€μν©λλ€. μ΄μ λΈλΌμ°μ λ₯Ό μ§μνκΈ° μν΄ ν΄λ¦¬νμ΄λ λ체 μ€νμΌλ§ κΈ°μ μ μ¬μ©ν΄μΌ ν μλ μμ΅λλ€.
μΌλ°μ μΈ λ¬Έμ ν΄κ²°
- μ€νμΌμ΄ μ μ©λμ§ μλ κ²½μ°: λ€μμ€νμ΄μ€λ₯Ό μ¬λ°λ₯΄κ² μ μΈνλμ§, μ λμ¬κ° μΌκ΄μ μΈμ§ λ€μ νμΈνμΈμ. CSSμ λ€μμ€νμ΄μ€ URIκ° XML λ¬Έμμ λ€μμ€νμ΄μ€ URIμ μΌμΉνλμ§ νμΈνμΈμ.
- μκΈ°μΉ μμ μ€νμΌλ§: μκΈ°μΉ μμ μ€νμΌλ§μ΄ 보μ΄λ κ²½μ° CSS μ νμλ₯Ό κ²ν νμ¬ μ¬λ°λ₯Έ μμλ₯Ό λμμΌλ‘ νκ³ μλμ§ νμΈνμΈμ. λ€λ₯Έ λ€μμ€νμ΄μ€μ μμμ μλμΉ μκ² μν₯μ μ€ μ μλ λ무 μΌλ°μ μΈ μ νμλ νΌνμΈμ.
- κ΅μ°¨ λΈλΌμ°μ νΈνμ± λ¬Έμ : μ¬λ¬ λΈλΌμ°μ μμ μ½λλ₯Ό ν μ€νΈνμ¬ νΈνμ± λ¬Έμ λ₯Ό μλ³νμΈμ. μ΄μ λΈλΌμ°μ λ₯Ό μ§μνκΈ° μν΄ ν΄λ¦¬νμ΄λ λ체 μ€νμΌλ§ κΈ°μ μ μ¬μ©νλ κ²μ κ³ λ €νμΈμ.
CSS λ€μμ€νμ΄μ€μ λμ
CSS λ€μμ€νμ΄μ€λ XML μ€νμΌλ§μ μν κ°λ ₯ν λꡬμ΄μ§λ§, νΉμ μꡬ μ¬νμ λ°λΌ κ³ λ €ν μ μλ λ€λ₯Έ μ κ·Ό λ°©μμ΄ μμ΅λλ€:
- XSLT (Extensible Stylesheet Language Transformations): XSLTλ XML λ¬Έμλ₯Ό HTMLμ ν¬ν¨ν λ€λ₯Έ νμμΌλ‘ λ³ννλ μΈμ΄μ λλ€. XML λ°μ΄ν°λ₯Ό μ‘°μνκ³ λμ μ½ν μΈ λ₯Ό μμ±νλ λ μ μ°νκ³ κ°λ ₯ν λ°©λ²μ μ 곡ν©λλ€. κ·Έλ¬λ CSS λ€μμ€νμ΄μ€λ³΄λ€ λ°°μ°κ³ μ¬μ©νκΈ°κ° λ 볡μ‘ν μ μμ΅λλ€.
- μλ°μ€ν¬λ¦½νΈ(JavaScript): μλ°μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ XML λ¬Έμμ DOM(Document Object Model)μ μ‘°μνκ³ λμ μΌλ‘ μ€νμΌμ μ μ©ν μ μμ΅λλ€. μ΄ μ κ·Ό λ°©μμ λμ μμ€μ μ μ°μ±μ μ 곡νμ§λ§ CSS λ€μμ€νμ΄μ€λ₯Ό μ¬μ©νλ κ²λ³΄λ€ μκ°μ΄ λ λ§μ΄ 걸릴 μ μμ΅λλ€.
- μλ² μΈ‘ μ²λ¦¬: μλ² μΈ‘μμ XML λ¬Έμλ₯Ό μ²λ¦¬νκ³ ν΄λΌμ΄μΈνΈλ‘ μ μ‘λλ HTMLμ μμ±ν μ μμ΅λλ€. μ΄ μ κ·Ό λ°©μμ μ¬μ©νλ©΄ λ¬Έμκ° λΈλΌμ°μ μμ λ λλ§λκΈ° μ μ 볡μ‘ν λ³νμ μννκ³ μ€νμΌλ§μ μ μ©ν μ μμ΅λλ€.
κ²°λ‘
CSS λ€μμ€νμ΄μ€ κ·μΉμ CSSλ‘ XML λ¬Έμλ₯Ό μ€νμΌλ§νλ λ° μ μ©ν λꡬμ λλ€. λ€μμ€νμ΄μ€λ₯Ό μ μΈνκ³ CSS μ νμμμ μ λμ¬λ₯Ό μ¬μ©νλ λ°©λ²μ μ΄ν΄νλ©΄ μκ°μ μΌλ‘ λ§€λ ₯μ μ΄κ³ μ μ§ κ΄λ¦¬νκΈ° μ¬μ΄ XML κΈ°λ° μΉ μ ν리μΌμ΄μ μ λ§λ€ μ μμ΅λλ€. λΈλΌμ°μ νΈνμ±μ κ³ λ €ν΄μΌ νμ§λ§, XML μ€νμΌλ§μ CSS λ€μμ€νμ΄μ€λ₯Ό μ¬μ©νλ μ΄μ μ μλΉν©λλ€. μ΄ κ°μ΄λλ ꡬ문, μ€μ μμ , λͺ¨λ² μ¬λ‘ λ° λ¬Έμ ν΄κ²° νμ ν¬ν¨νμ¬ CSS λ€μμ€νμ΄μ€ κ·μΉμ λν ν¬κ΄μ μΈ κ°μλ₯Ό μ 곡νμ΅λλ€. μ΄λ¬ν μ§μΉ¨μ λ°λ₯΄λ©΄ CSS λ€μμ€νμ΄μ€λ₯Ό ν¨κ³Όμ μΌλ‘ νμ©νμ¬ XML λ°μ΄ν°μ ννμ ν₯μμν¬ μ μμ΅λλ€.
νμ μ¬λ¬ λΈλΌμ°μ μμ μ½λλ₯Ό ν μ€νΈνκ³ νμν κ²½μ° λ체 μ κ·Ό λ°©μμ κ³ λ €νλ κ²μ μμ§ λ§μΈμ. CSS λ€μμ€νμ΄μ€ κ·μΉμ λν νμ€ν μ΄ν΄λ₯Ό ν΅ν΄ μ¬μ©μμκ² λ§€λ ₯μ μ΄κ³ μ κ·Όμ± μλ μΉ κ²½νμ μ 곡ν μ μμ΅λλ€.