XML λ¬Έμ μ€νμΌλ§μ μν CSS λ€μμ€νμ΄μ€ μ¬μΈ΅ λΆμ. μΉ κ°λ°μλ₯Ό μν ꡬ문, μ μ© λ° λͺ¨λ² μ¬λ‘λ₯Ό λ€λ£Ήλλ€.
CSS λ€μμ€νμ΄μ€ κ·μΉ: μ λ°ν XML μ€νμΌλ§
CSS(Cascading Style Sheets)λ μ ν΅μ μΌλ‘ HTML λ¬Έμμ μ€νμΌμ μ§μ νλ λ° μ¬μ©λ©λλ€. κ·Έλ¬λ CSSλ XML(Extensible Markup Language) λ¬Έμμλ μ μ©λ μ μμ΅λλ€. μ¬κΈ°μ CSS λ€μμ€νμ΄μ€κ° μ€μν μν μ νλλ°, XML ꡬ쑰 λ΄μμ μ°κ²°λ λ€μμ€νμ΄μ€λ₯Ό κΈ°λ°μΌλ‘ νΉμ μμλ₯Ό λμμΌλ‘ μ§μ νλ λ©μ»€λμ¦μ μ 곡ν©λλ€. XHTML, SVG, MathML λ° κΈ°ν XML κΈ°λ° κΈ°μ μ λ€λ£¨λ κ°λ°μμκ²λ CSS λ€μμ€νμ΄μ€λ₯Ό μ΄ν΄νλ κ²μ΄ μ€μν©λλ€.
XML λ€μμ€νμ΄μ€λ?
XML λ€μμ€νμ΄μ€λ λ¨μΌ XML λ¬Έμ λ΄μμ μ¬λ¬ μμ€μ μ΄νλ₯Ό νΌν©ν λ μμ μ΄λ¦ μΆ©λμ νΌνλ λ°©λ²μ λλ€. λ€μμ€νμ΄μ€λ μΌλ°μ μΌλ‘ URLμΈ URI(Uniform Resource Identifier)λ‘ μλ³λ©λλ€. URI μμ²΄κ° μ ν¨ν 리μμ€λ₯Ό κ°λ¦¬ν¬ νμλ μμ§λ§, λ€μμ€νμ΄μ€μ κ³ μ μλ³μ μν μ ν©λλ€. μ΄λ₯Ό XML λ¬Έμ λ΄μμ μμκ° κ³ μ νκ² μλ³λλ λ³λμ "μΈκ³"λ₯Ό λ§λλ λ°©λ²μ΄λΌκ³ μκ°νμμμ€.
HTMLκ³Ό SVG(Scalable Vector Graphics)λ₯Ό λͺ¨λ ν¬ν¨νλ λ¬Έμλ₯Ό μκ°ν΄ 보μμμ€. HTMLκ³Ό SVGλ λͺ¨λ <title>μ΄λΌλ μμλ₯Ό κ°μ§κ³ μμ΅λλ€. λ€μμ€νμ΄μ€κ° μμΌλ©΄ λΈλΌμ°μ λ μ΄λ€ <title> μμμ μ€νμΌμ μ μ©ν΄μΌ ν μ§ μ μ μμ΅λλ€.
XMLμμ λ€μμ€νμ΄μ€κ° μ μΈλλ λ°©μμ μμμ λλ€:
\n\n<?xml version="1.0" encoding="UTF-8"?>\n<html xmlns="http://www.w3.org/1999/xhtml" \n xmlns:svg="http://www.w3.org/2000/svg">\n <head>\n <title>Document with Namespaces</title>\n </head>\n <body>\n <h1>Hello World!</h1>\n <svg:svg width="100" height="100">\n <svg:circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />\n </svg:svg>\n </body>\n</html>\n\n
μ΄ μμμμ:
xmlns="http://www.w3.org/1999/xhtml"λ<html>μμ λ° λͺ¨λ μμ(μ¬μ μλμ§ μλ ν)μ κΈ°λ³Έ λ€μμ€νμ΄μ€λ₯Ό μ μΈν©λλ€. μ΄λ<head>,<title>,<body>,<h1>κ³Ό κ°μ μμκ° XHTML λ€μμ€νμ΄μ€μ μν¨μ μλ―Έν©λλ€.xmlns:svg="http://www.w3.org/2000/svg"λ SVG λ€μμ€νμ΄μ€μ "svg" μ λμ¬λ₯Ό κ°μ§ λ€μμ€νμ΄μ€λ₯Ό μ μΈν©λλ€.<svg:svg>λ°<svg:circle>μ κ°μ μμλ SVG λ€μμ€νμ΄μ€μ μν©λλ€.
CSS λ€μμ€νμ΄μ€ μλ λ°©μ
CSS λ€μμ€νμ΄μ€λ₯Ό μ¬μ©νλ©΄ μμμ λ€μμ€νμ΄μ€μ λ°λΌ μ€νμΌμ μ μ©ν μ μμ΅λλ€. μ΄λ CSS λ΄μμ @namespace at-ruleμ μ¬μ©νμ¬ λ¬μ±λ©λλ€. @namespace κ·μΉμ λ€μμ€νμ΄μ€ μ λμ¬λ₯Ό νΉμ λ€μμ€νμ΄μ€ URIμ μ°κ²°ν©λλ€.
κΈ°λ³Έ ꡬ문μ λ€μκ³Ό κ°μ΅λλ€:
\n\n@namespace prefix "namespace-uri";\n\n
μ¬κΈ°μ:
prefixλ CSSμμ μ¬μ©νλ €λ λ€μμ€νμ΄μ€ μ λμ¬μ λλ€."namespace-uri"λ λ€μμ€νμ΄μ€λ₯Ό μλ³νλ URIμ λλ€.
λ€μμ€νμ΄μ€ μ λμ¬λ₯Ό μ μΈν νμλ CSS μ λ ν°μμ ν΄λΉ λ€μμ€νμ΄μ€μ μνλ μμλ₯Ό λμμΌλ‘ μ§μ νλ λ° μ¬μ©ν μ μμ΅λλ€.
CSS λ€μμ€νμ΄μ€ μ μ©: μ€μ μμ
μμ 1: SVG μμ μ€νμΌλ§
μ΄μ μμμ SVG μν(circle)μ μ€νμΌλ§νκ³ μΆλ€κ³ κ°μ ν΄ λ΄ μλ€. λ€μ CSSλ₯Ό μ¬μ©ν μ μμ΅λλ€:
\n\n@namespace svg "http://www.w3.org/2000/svg";\n\nsvg|circle {\n fill: red;\n stroke: blue;\n stroke-width: 5px;\n}\n\n
μ΄ CSSμμ:
@namespace svg "http://www.w3.org/2000/svg";λ "svg" μ λμ¬λ₯Ό μ¬μ©νμ¬ SVG λ€μμ€νμ΄μ€λ₯Ό μ μΈν©λλ€.svg|circleμ νμ λ μ΄λ¦ μ λ ν°μ λλ€. νμ΄ν κΈ°νΈ(|)λ λ€μμ€νμ΄μ€ μ λμ¬μ μμ μ΄λ¦μ ꡬλΆν©λλ€. μ΄ μ λ ν°λ SVG λ€μμ€νμ΄μ€ λ΄μ λͺ¨λ<circle>μμλ₯Ό λμμΌλ‘ μ§μ ν©λλ€.
μ΄ CSSλ μνμ μ±μ°κΈ° μμμ λΉ¨κ°μμΌλ‘, ν λ리 μμμ νλμμΌλ‘, ν λ리 λκ»λ₯Ό 5ν½μ λ‘ λ³κ²½ν©λλ€.
μμ 2: κΈ°λ³Έ λ€μμ€νμ΄μ€λ₯Ό μ¬μ©νλ XHTML μμ μ€νμΌλ§
XML λ¬Έμμ κΈ°λ³Έ λ€μμ€νμ΄μ€(λ£¨νΈ μμμ μ λμ¬ μμ΄ μ μΈλ¨)κ° μλ κ²½μ°μλ CSSλ₯Ό μ¬μ©νμ¬ ν΄λΉ λ€μμ€νμ΄μ€ λ΄μ μμλ₯Ό λμμΌλ‘ μ§μ ν μ μμ΅λλ€. λ€μμ€νμ΄μ€ μ λμ¬λ₯Ό μ μν λ€μ λ€μμ€νμ΄μ€ μ λμ¬μ ν¨κ» μ λλ²μ€ μ
λ ν°(*)λ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
μ΄μ μμμ XHTML ꡬ쑰λ₯Ό μκ°ν΄ 보μμμ€. <h1> μμλ₯Ό μ€νμΌλ§νλ €λ©΄ λ€μ CSSλ₯Ό μ¬μ©ν μ μμ΅λλ€:
\n\n@namespace xhtml "http://www.w3.org/1999/xhtml";\n\nxhtml|h1 {\n color: green;\n font-size: 2em;\n}\n\n
μ΄ CSSμμ:
@namespace xhtml "http://www.w3.org/1999/xhtml";λ "xhtml" μ λμ¬λ₯Ό μ¬μ©νμ¬ XHTML λ€μμ€νμ΄μ€λ₯Ό μ μΈν©λλ€.xhtml|h1μ XHTML λ€μμ€νμ΄μ€ λ΄μ<h1>μμλ₯Ό λμμΌλ‘ μ§μ ν©λλ€.
μ΄ CSSλ <h1> μμμ μμμ λ
ΉμμΌλ‘, κΈκΌ΄ ν¬κΈ°λ₯Ό 2emμΌλ‘ λ³κ²½ν©λλ€.
μμ 3: μ¬λ¬ λ€μμ€νμ΄μ€ μ¬μ©νκΈ°
CSSμμ μ¬λ¬ λ€μμ€νμ΄μ€λ₯Ό μ μνμ¬ λμΌν λ¬Έμ λ΄μ λ€λ₯Έ μ΄νμμ μ¨ μμλ₯Ό μ€νμΌλ§ν μ μμ΅λλ€.
XHTMLκ³Ό MathMLμ κ²°ν©ν XML λ¬Έμλ₯Ό μκ°ν΄ 보μμμ€:
\n\n<?xml version="1.0" encoding="UTF-8"?>\n<html xmlns="http://www.w3.org/1999/xhtml" \n xmlns:mathml="http://www.w3.org/1998/Math/MathML">\n <head>\n <title>Document with Multiple Namespaces</title>\n </head>\n <body>\n <h1>MathML Example</h1>\n <mathml:math>\n <mathml:mrow>\n <mathml:mi>x</mathml:mi>\n <mathml:mo>+</mathml:mo>\n <mathml:mi>y</mathml:mi>\n </mathml:mrow>\n </mathml:math>\n </body>\n</html>\n\n
<h1> μμ(XHTML)μ <math> μμ(MathML)λ₯Ό λͺ¨λ μ€νμΌλ§νλ €λ©΄ λ€μ CSSλ₯Ό μ¬μ©ν μ μμ΅λλ€:
\n\n@namespace xhtml "http://www.w3.org/1999/xhtml";\n@namespace mathml "http://www.w3.org/1998/Math/MathML";\n\nxhtml|h1 {\n color: blue;\n}\n\nmathml|math {\n font-size: 1.5em;\n}\n\n
μ΄ CSSλ <h1> μμλ₯Ό νλμμΌλ‘ μ€νμΌλ§νκ³ <math> μμμ κΈκΌ΄ ν¬κΈ°λ₯Ό λ립λλ€.
λΈλΌμ°μ νΈνμ±
CSS λ€μμ€νμ΄μ€ μ§μμ μΌλ°μ μΌλ‘ μ΅μ λΈλΌμ°μ μμ μ μλν©λλ€. κ·Έλ¬λ ꡬν λΈλΌμ°μ λ μ§μμ΄ μ νμ μ΄κ±°λ μ ν μμ μ μμ΅λλ€. νΈνμ±μ 보μ₯νκΈ° μν΄ λ€μν λΈλΌμ°μ μμ CSSλ₯Ό ν μ€νΈνλ κ²μ΄ μ€μν©λλ€.
λΈλΌμ°μ μ§μμ λν μΌλ°μ μΈ κ°μλ λ€μκ³Ό κ°μ΅λλ€:
- Chrome: μ 체 μ§μ
- Firefox: μ 체 μ§μ
- Safari: μ 체 μ§μ
- Edge: μ 체 μ§μ
- Internet Explorer: μ νμ μ§μ (IE9+ μΌλΆ νΉμ΄μ¬ν μμ)
ꡬν Internet Explorer λ²μ μ κ²½μ° μ‘°κ±΄λΆ μ£Όμ λλ λ체 μ€νμΌλ§ κΈ°μ μ μ¬μ©ν΄μΌ ν μλ μμ΅λλ€.
CSS λ€μμ€νμ΄μ€ μ¬μ©μ μν λͺ¨λ² μ¬λ‘
- CSS μλ¨μ λ€μμ€νμ΄μ€ μ μΈ: μ΄λ κ² νλ©΄ CSSλ₯Ό λ μ½κΈ° μ½κ³ μ μ§ κ΄λ¦¬νκΈ° μ½κ² λ§λλλ€.
- μλ―Έ μλ μ λμ¬ μ¬μ©: κ΄λ ¨ λ€μμ€νμ΄μ€λ₯Ό λͺ ννκ² λνλ΄λ μ λμ¬λ₯Ό μ νν©λλ€ (μ: SVGμ κ²½μ° "svg", XHTMLμ κ²½μ° "xhtml").
- μ λμ¬ μ¬μ©μ μΌκ΄μ± μ μ§: λ€μμ€νμ΄μ€μ λν μ λμ¬λ₯Ό μ νν νμλ CSS μ 체μμ μΌκ΄λκ² μ¬μ©ν©λλ€.
- λ€μν λΈλΌμ°μ μμ ν μ€νΈ: λͺ¨λ λμ λΈλΌμ°μ μμ CSSκ° μμλλ‘ μλνλμ§ νμΈν©λλ€.
- CSS 리μ μ¬μ© κ³ λ €: μ€νμΌμ 리μ νλ©΄ νΉν XML λ¬Έμλ₯Ό λ€λ£° λ λ€μν λΈλΌμ°μ μμ μΌκ΄λ μ€νμΌλ§μ 보μ₯νλ λ° λμμ΄ λ μ μμ΅λλ€.
- λͺ¨λ λ€μμ€νμ΄μ€ μμμ νμ λ μ΄λ¦ (prefix|element) μ¬μ©: μΌλΆ λΈλΌμ°μ λ κΈ°λ³Έ λ€μμ€νμ΄μ€μ μμλ₯Ό μ λμ¬ μμ΄ μ€νμΌλ§νλ κ²μ νμ©ν μ μμ§λ§, λͺ νμ±κ³Ό μΌκ΄μ±μ μν΄ νμ νμ λ μ΄λ¦μ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
μ λλ²μ€ λ€μμ€νμ΄μ€ μ λ ν°
λ¨μΌ λ³ν(*)λ‘ νμλλ μ λλ²μ€ λ€μμ€νμ΄μ€ μ
λ ν°λ λ€μμ€νμ΄μ€μ κ΄κ³μμ΄ μμλ₯Ό λμμΌλ‘ μ§μ νλ λ° μ¬μ©λ μ μμ΅λλ€. μ΄λ νΉμ μν©μμ μ μ©ν μ μμ§λ§, μλνμ§ μμ μ€νμΌλ§μΌλ‘ μ΄μ΄μ§ μ μμΌλ―λ‘ μ£Όμν΄μ μ¬μ©ν΄μΌ ν©λλ€.
μλ₯Ό λ€μ΄, *|h1μ λ€μμ€νμ΄μ€μ κ΄κ³μμ΄ λͺ¨λ <h1> μμλ₯Ό λμμΌλ‘ μ§μ ν©λλ€.
`default` λ€μμ€νμ΄μ€ μ¬μ©νκΈ°
CSS Level 4λ κΈ°λ³Έ λ€μμ€νμ΄μ€λ₯Ό μ§μ νκΈ° μν ν€μλ `default`λ₯Ό λμ νμ΅λλ€. μ΄λ κΈ°λ³Έ λ€μμ€νμ΄μ€κ° μ£Όμ λ€μμ€νμ΄μ€μΈ λ¬Έμλ₯Ό λ€λ£° λ λ κ°κ²°ν μ€νμΌλ§μ κ°λ₯νκ² ν©λλ€.
ꡬ문:
\n\n@namespace default "http://www.w3.org/1999/xhtml";\n\ndefault|h1 {\n color: red;\n}\n\n
νμ§λ§ μ΄ κΈ°λ₯μ λν λΈλΌμ°μ μ§μμ μμ§ λ°μ μ€μ λλ€.
λ체 μ€νμΌλ§ μ κ·Ό λ°©μ
CSS λ€μμ€νμ΄μ€λ XML λ¬Έμ μ€νμΌλ§μ κΆμ₯λλ λ°©λ²μ΄μ§λ§, ꡬν λΈλΌμ°μ λ₯Ό μ§μν΄μΌ νκ±°λ 볡μ‘ν μ€νμΌλ§ μꡬ μ¬νμ΄ μλ κ²½μ° κ³ λ €ν μ μλ λ체 μ κ·Ό λ°©μμ΄ μμ΅λλ€.
- JavaScript: JavaScriptλ₯Ό μ¬μ©νμ¬ μμμ λ€μμ€νμ΄μ€λ₯Ό κΈ°λ°μΌλ‘ μ€νμΌμ λμ μΌλ‘ μΆκ°νκ±°λ μμ ν μ μμ΅λλ€. μ΄λ λ λ§μ μ μ°μ±μ μ 곡νμ§λ§ λ 볡μ‘ν μλ μμ΅λλ€.
- XSLT: XSLT(Extensible Stylesheet Language Transformations)λ₯Ό μ¬μ©νμ¬ XML λ¬Έμλ₯Ό HTML λλ λ€λ₯Έ νμμΌλ‘ λ³ννμ¬ νμ€ CSSλ₯Ό μ¬μ©νμ¬ λ³νλ μΆλ ₯μ μ€νμΌμ μ§μ ν μ μμ΅λλ€.
νν ν¨μ
- λ€μμ€νμ΄μ€ μ μΈμ μμ:
@namespaceλ₯Ό μ¬μ©νμ¬ λ€μμ€νμ΄μ€λ₯Ό μ μΈνμ§ μμΌλ©΄ CSS κ·μΉμ΄ μλν μμμ μ μ©λμ§ μμ΅λλ€. - μλͺ»λ λ€μμ€νμ΄μ€ URI μ¬μ©: κ° μ΄νμ λν΄ μ¬λ°λ₯Έ λ€μμ€νμ΄μ€ URIλ₯Ό μ¬μ©νλμ§ νμΈνμμμ€.
- λ€μμ€νμ΄μ€ μ λμ¬ νΌλ: νΌλμ νΌνκΈ° μν΄ λ€λ₯Έ λ€μμ€νμ΄μ€μλ λ€λ₯Έ μ λμ¬λ₯Ό μ¬μ©νμμμ€.
- λΈλΌμ°μ νΈνμ± λ¬΄μ: CSSκ° μμλλ‘ μλνλμ§ νμΈνκΈ° μν΄ λ€μν λΈλΌμ°μ μμ ν μ€νΈνμμμ€.
- μ§λμΉκ² ꡬ체μ μΈ μ λ ν°: CSSλ₯Ό μ μ§ κ΄λ¦¬νκΈ° μ΄λ ΅κ² λ§λ€ μ μλ μ§λμΉκ² ꡬ체μ μΈ μ λ ν° μ¬μ©μ νΌνμμμ€.
κ²°λ‘
CSS λ€μμ€νμ΄μ€λ XML λ¬Έμ μ€νμΌλ§μ μν κ°λ ₯νκ³ μ μ°ν λ°©λ²μ μ 곡ν©λλ€. λ€μμ€νμ΄μ€κ° μλνλ λ°©μκ³Ό CSSμμ μ¬μ©νλ λ°©λ²μ μ΄ν΄ν¨μΌλ‘μ¨ λ³΅μ‘ν XML κΈ°λ° μ ν리μΌμ΄μ μ μν μ ꡬ쑰νλκ³ μ μ§ κ΄λ¦¬ κ°λ₯ν μ€νμΌ μνΈλ₯Ό λ§λ€ μ μμ΅λλ€. λΈλΌμ°μ νΈνμ±μ μΌλ°μ μΌλ‘ μνΈνμ§λ§, μΌκ΄λ μ¬μ©μ κ²½νμ 보μ₯νκΈ° μν΄ λ€μν λΈλΌμ°μ μμ CSSλ₯Ό ν μ€νΈνλ κ²μ΄ μ€μν©λλ€. λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄κ³ νν ν¨μ μ νΌν¨μΌλ‘μ¨ CSS λ€μμ€νμ΄μ€μ νμ νμ©νμ¬ μκ°μ μΌλ‘ λ§€λ ₯μ μ΄κ³ κΈ°λ₯μ μΈ XML κΈ°λ° μΉ μ ν리μΌμ΄μ μ λ§λ€ μ μμ΅λλ€.
CSSλ₯Ό μ 리νκ³ , μλ―Έ μλ μ λμ¬λ₯Ό μ¬μ©νλ©°, νμ μ½λλ₯Ό μ² μ ν ν μ€νΈνλ κ²μ μμ§ λ§μμμ€. CSS λ€μμ€νμ΄μ€μ λν νμ€ν μ΄ν΄λ₯Ό λ°νμΌλ‘ μ΄λ€ XML μ€νμΌλ§ λ¬Έμ λ μμ μκ² ν΄κ²°ν μ μμ΅λλ€.