CSS Selector IICSS Selector II (*** FF, Opera etc. Only 2006³â 5¿ù 16ÀÏ È¿äÀÏ ÇöÀç)À̹ø ÆäÀÌÁö¿¡¼´Â ±× µ¿¾È ´Ù·çÁö ¾Ê¾Ò´ø '³ª¸ÓÁö Selectorµé'¿¡ ´ëÇØ ´Ù·ç¾î º¸·Á°í ÇÕ´Ï´Ù. '³ª¸ÓÁö selectorµé' À̶õ Ç¥ÇöÀº ¾ø´ø selector°¡ °©Àڱ⠻ý°Ü³ °ÍÀÌ ¾Æ´Ï¶ó, ÇöÀç ½ÃÁ¡(2006³â 5¿ù 16ÀÏ È¿äÀÏ)±îÁöµµ IE 6.0 ¿¡¼ Áö¿øÇÏÁö ¸øÇÏ´Â selectorµéÀ» ¸»ÇÏ´Â °Í ÀÔ´Ï´Ù. ÇÏÁö¸¸ FF µîÀÇ ºê¶ó¿ìÀú¿¡¼´Â ÇöÀç °ÅÀÇ ¿Ïº®ÇÏ°Ô Áö¿øµÇ°í ÀÖÀ¸¸ç, ÇâÈÄ¿¡ ¹ßÇ¥µÇ´Â IE version¿¡¼ Áö¿ø µÉÁöµµ ¸ð¸£¹Ç·Î, ±× µ¿¾È ´Ù·çÁö ¾Ê¾Ò´ø ³ª¸ÓÁö CSS selector µé¿¡ ´ëÇØ ´Ù·ç·Á°í ÇÏ´Â °Í ÀÔ´Ï´Ù. »ç½Ç IE °¡ CSS Level 2¸¦ ¿Ïº®ÇÏ°Ô Áö¿øÇÏÁö ¸øÇϹǷÎÇØ¼ »ý±â´Â CSS »ç¿ë¿¡ ´ëÇÑ ¼±ÅñÇÀÇ Ãà¼Ò¶ó´Â ¸é¿¡¼, ±× ÆóÇØ°¡ ½Ç·Î Å®´Ï´Ù. ÇѸ¶µð·Î ÀÌ·Î ÀÎÇØ¼ IE °¡ CSS »ç¿ëÀÚÀÇ CSS ¹®¼ ±¸Á¶ ÀÚü¿¡ ´ëÇÑ '¼±ÅñÇÀÇ Á¦ÇÑ ¹× Ãà¼Ò' ¶ó´Â ¾öû³ ¹ÎÆó¸¦ ³¢Ä¡°í ÀÖ´Ù°í ÇÒ ¼ö Àִ°ÅÁÒ. µû¶ó¼ ÇâÈÄ¿¡ ¹ßÇ¥µÈ´Ù°í ÇÏ´Â IE 7 ¿¡¼´Â ÀÌ·± ¹®Á¦Á¡µéÀÌ ¸»²ûÈ÷ °³¼±µÇ¾î¼ À§ÀÇ Á¦¸ñ¿¡ ºÙÀº 'FF Only'¸¦ ¶¼¾î ³»°í, »ç¿ëÀÚ ¸ðµÎ°¡ º¸´Ù Æí¸®ÇÏ°Ô ¹®¼¸¦ ¸¸µé ¼ö Àֱ⸦ ¹Ù¶ó´Â ¸¶À½À¸·Î ½ÃÀÛÇØ º¸°Ú½À´Ï´Ù. SelectorÀÇ ¿ì¼± ¼øÀ§¿Í Àû¿ë Á¶°Ç¾Æ·¡ÀÇ Ç¥´Â CSS Level 2¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â selectorµé ÀÔ´Ï´Ù. ¾Æ·¡ Ç¥¿¡ Ç¥±âÇÑ 'E' ´Â HTMLÀ̳ª XML¿¡¼ »ç¿ëÇÏ´Â elementµéÀ» ¶æÇϰí, Àû¿ë pattern À̶õ ÇØ´ç Ç׸ñÀÇ pattern°ú ÀÏÄ¡ÇÏ´Â Á¶°ÇÀ» °®Ãß¾úÀ» °æ¿ì, ÁöÁ¤ÇÑ CSS property¿Í °ªµéÀÌ Àû¿ëµÈ´Ù´Â °ÍÀ» ¸» ÇÕ´Ï´Ù. ±×¸®°í ¿ì¼± ¼øÀ§ÀÇ °æ¿ì ¾Æ·¡ÀÇ Ç¥¿¡´Â ¿ì¼± ¼øÀ§°¡ °¡Àå ³·Àº universal selector¿¡¼ ºÎÅÍ ¿ì¼± ¼øÀ§°¡ °¡Àå ³ôÀº ID selector ¼øÀ¸·Î Ç¥½ÃµÇ¾î ÀÖ½À´Ï´Ù. ¾Æ·¡ Ç¥¿¡ ³ª¿À´Â selector Áß¿¡ child, sibling, descendant µî¿¡ ´ëÇÑ °³³ä¿¡ ´ëÇØ ÀÚ¼¼È÷ ¾Ë°í ½ÍÀ¸¸é, ÀÌ »çÀÌÆ®ÀÇ XML > XML Document > Document MapÀ» Âü°í ÇϽñ⠹ٶø´Ï´Ù. À§¿¡¼ ¸»Çß´Ù½ÃÇÇ ÀÌ ÆäÀÌÁö¿¡¼ ´Ù·ç´Â selectorµéÀº ¸ðµÎ FF ³ª Opera µî¿¡¼¸¸ Áö¿øµÇ¹Ç·Î IE¿¡¼´Â ½ÇÇà ÇØµµ ¸»Â¯ ÇêÀÏ ÀÔ´Ï´Ù.
Child SelectorChild Selector´Â child element(¾î¶² elementÀÇ ÇÑ ´Ü°è ÇÏÀ§ element)¿¡¸¸ Àû¿ëµÇ´Â selector ÀÔ´Ï´Ù. µû¶ó¼ ¾Æ·¡ÀÇ ¿¹Á¦¿¡¼ µÎ ¹øÂ° 'p' ¼Ó¿¡ ÀÖ´Â 2 ´Ü°è ÇÏÀ§ ÀÎ span element¿¡´Â Àû¿ëµÇÁö ¾Ê°í ù ¹øÂ° 'p' elementÀÇ child elementÀÎ span element¿¡¸¸ Àû¿ë µË´Ï´Ù. E > F
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Child Selector</title>
<style type="text/css">
<!--
p > span {color:red;}
-->
</style>
</head>
<body>
<p><span>red</span></p>
<p><div><span>not red</span></div></p>
</body>
</html>
:first-child pseudo classÀÌ selector´Â ¾î¶² elementÀÇ child element°¡ ¿©·¯°³ ÀÖÀ» °æ¿ì ±× child elementÁß, ù ¹øÂ° child element¿¡¸¸ Àû¿ëµÇ´Â selector ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î ¾Æ·¡ÀÇ code¿¡¼ div element´Â 3 °³ÀÇ p element¸¦ ÀÚ½ÄÀ¸·Î °¡Áö´Âµ¥ ÀÌ Áß¿¡ ù ¹øÂ° p element¸¸ {font-weight:bold} °¡ Àû¿ë µË´Ï´Ù. E:first-child
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>first-child Selector</title>
<style type="text/css">
<!--
div > p:first-child{font-weight:bold;}
-->
</style>
</head>
<body>
<div class="text">
<p>bold text</p>
<p>normal text</p>
<p>normal text</p>
</div>
</body>
</html>
Dynamic pseudo classÀÌ selectorµéÀº IE°¡ Áö¿øÇÏÁö ¾Ê´Â °ü°è·Î, ÈçÈ÷ a element¿¡¸¸ »ç¿ëµÇ´Â °ÍÀ¸·Î ¾Ë°í ÀÖ´Â °æ¿ì°¡ ¸¹Àºµ¥, »ç½ÇÀº ¸ðµç block level°ú text level element¿¡ Àû¿ëµË´Ï´Ù. :hover´Â cursor°¡ ÁöÁ¤ÇÑ element À§¿¡ ¿Ã¶ó °¬À» ¶§, :active´Â ÁöÁ¤ÇÑ element ¿¡¼ click µîÀÇ µ¿ÀÛÀÌ ÀϾÀ» ¶§, :focus ´Â ÁöÁ¤ÇÑ element¿¡ focus°¡ µé¾î °¬À» ¶§ ÀÇ CSS propertyµéÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. FF¿¡¼ ½ÇÇàÇÑ ÈÄ¿¡ °¢ div¿¡ mouse¸¦ ¿Ã¸®°Å³ª click µîÀÇ µ¿ÀÛÀ» ÇØ º¸°í, ¶ÇÇÑ tab key¸¦ Ãļ focus¸¦ À̵¿Çϸé :focus¿¡ ÁöÁ¤ÇÑ {background-color:red;}°¡ ³ªÅ¸ ³³´Ï´Ù. Dynamic pseudo class
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Dynamic pseudo class</title>
<style type="text/css">
<!--
div.dyna:hover{background-color:gold;}
div.dyna:active{background-color:blue;}
div.dyna:focus{background-color:red;}
-->
</style>
</head>
<body>
<div class="dyna" tabindex="10">Div 1</div>
<div class="dyna" tabindex="20">Div 2</div>
<div class="dyna" tabindex="30">Div 3</div>
</div>
</body>
</html>
:lang pseudo classÀÌ selector´Â ÁöÁ¤ÇÏ´Â lang attributeÀÇ °ªÀÌ ÀÏÄ¡ÇÏ´Â element¿¡¸¸ Àû¿ë µË´Ï´Ù. ¾Æ·¡ÀÇ code Áß¿¡ div:lang(ko)·Î ÁöÁ¤ÇÑ div¿¡¸¸ {color:blue;font-size:12px;}°¡ Àû¿ë µË´Ï´Ù. ±×¸®°í XML ÀÇ °æ¿ì xml:lang="LanguageCode"¸¦ »ç¿ëÇÑ element¿¡¸¸ Àû¿ë µË´Ï´Ù. E:lang(c)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>first-child Selector</title>
<style type="text/css">
<!--
div:lang(ko){color:blue;font-size:12px;}
-->
</style>
</head>
<body>
<div lang="ko">
³ª´Â ÇѱÛÀ» »ç¿ëÇϰí ÀÖ½À´Ï´Ù.
</div>
<div lang="en">
³ª´Â ÇÑ±Û ¾Æ´Ï°Åµç...
</div>
</body>
</html>
Adjacent SelectorAdjacent selector´Â °°Àº ºÎ¸ð¸¦ °¡Áö¸é¼ ÀÎÁ¢ÇÑ ÇüÁ¦(sibling)°ü°èÀÎ element¿¡ Àû¿ë µË´Ï´Ù. ¿¹¸¦ µé¾î ¾Æ·¡ÀÇ code ¿Í °°ÀÌ div ¼Ó¿¡ h1°ú h2°¡ ÀÎÁ¢(adjacent)ÇØ ÀÖÀ¸¸é h1 ´ÙÀ½ÀÇ h2¿¡¸¸ {font-style:italic;}ÀÌ Àû¿ë µË´Ï´Ù. E + F
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>first-child Selector</title>
<style type="text/css">
<!--
h1 + h2{font-style:italic;}
-->
</style>
</head>
<body>
<div>
<h1>normal</h1>
<h2>italic</h2>
<h2>normal</h2>
</div>
</body>
</html>
Attribute SelectorAttribute selector´Â element¿¡ »ç¿ëµÈ attribute¿Í attribute °ª µîÀÌ selector·Î ÁöÁ¤ÇÏ´Â ¾î¶² Á¶°Ç°ú ÀÏÄ¡ÇÒ ¶§ Àû¿ëµÇ´Â selector ÀÔ´Ï´Ù. Å©°Ô ³ª´©¾î ¾Æ·¡ÀÇ 4 °¡ÁöÀÇ Á¶°Ç½ÄÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. 1. E[attr]ÀÌ Á¶°ÇÀº 'attr' À̶ó´Â attribute¸¦ »ç¿ëÇÏ´Â ¸ðµç E element¿¡ Àû¿ë µÇ´Â selector ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î ¾Æ·¡ÀÇ code¿¡¼¿Í °°ÀÌ title attribute¸¦ »ç¿ëÇÏ´Â ¸ðµç element(¾Æ·¡¿¡¼´Â h1) ¿¡¸¸ {background-color:gold}°¡ Àû¿ë µË´Ï´Ù. E[attr]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Attribute Selector 01</title>
<style type="text/css">
<!--
*[title]{background-color:gold;} /* title attribute¸¦ »ç¿ëÇÏ´Â ¹®¼³»ÀÇ ¸ðµç element(*)¿¡ Àû¿ë. */
-->
</style>
</head>
<body>
<div>
<h1 title="Å« Á¦¸ñ">Gold background</h1>
<h2>³ª´Â gold ¾Æ´Ï°Åµç...</h2>
<h3>³ªµµ ¾Æ´Ï°Åµç...</h3>
</div>
</body>
</html>
2. E[attr="attVal"]ÀÌ °æ¿ì´Â 'attr'À̶ó´Â attribute¸¦ »ç¿ëÇÏ´Â element Áß¿¡ ±× °ªÀÌ 'attVal' ÀÎ 'E' element¿¡¸¸ Àû¿ë µÇ´Â selector ÀÔ´Ï´Ù. ¾Æ·¡ÀÇ ¿¹Á¦¿¡¼´Â href="http://www.cadvance.org/"ÀÎ A element(µé)¸¸ {font-weight:bold;} °¡ Àû¿ë µË´Ï´Ù. ÀÌ ¶§ 'attVal' ¿¡ ÇØ´çÇÏ´Â °ªÀº ¹Ýµå½Ã ´Ü¼ø µû¿ÈÇ¥(') ³ª ÀÌÁß µû¿ÈÇ¥(")·Î ¹¾î Áà¾ß µË´Ï´Ù. E[attr="attVal"]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Attribute Selector 02</title>
<style type="text/css">
<!--
a[href="http://www.cadvance.org/"]{font-weight:bold;}
-->
</style>
</head>
<body>
<div>
<a href="http://www.cadvance.org/">³ª´Â ±½Àº ±Û¾¾</a><br />
<a href="http://www.cadvance.org/">³ª´Â ±½Àº ±Û¾¾</a><br />
<a href="http://www.w3.org/">³ª´Â °¡´Â ±Û¾¾</a><br />
</div>
</body>
</html>
3. E[attr~="attVal"]¶§·Î´Â attribute °ªÀÌ space·Î ºÐ¸®µÇ¾î, ¿©·¯°³ ÀÏ °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ ¶§ attribute °ªµé Áß¿¡, ÁöÁ¤ÇÏ´Â 'attVal'°ú ÀÏÄ¡ÇÏ´Â °ªÀ» °¡Áø element¿¡¸¸ Àû¿ë µË´Ï´Ù. ¿¹¸¦ µé¾î ¾Æ·¡ÀÇ code ¿¡¼ class °ª Áß¿¡ 'a' ¸¦ Æ÷ÇÔÇÑ class attribute¸¦ °¡Áö´Â p element(¾Æ·¡ code¿¡¼´Â ù ¹øÂ°, ¼¼ ¹øÂ°)¿¡¸¸ {color:blue;}°¡ Àû¿ë µË´Ï´Ù. E[attr~="attVal"]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Attribute Selector 03</title>
<style type="text/css">
<!--
.a{font-size:12px;}
.b{text-decoration:underline;}
.c{font-family:Arial;}
p[class~="a"]{color:blue;}
-->
</style>
</head>
<body>
<div>
<p class="a b">12px, underline, blue color</p>
<p class="b c">underline, arial</p>
<p class="a c">12px, arial, blue color</p>
</div>
</body>
</html>
4. E[attr|="attVal"]À§ÀÇ E[attr~="attVal"]°ú ºñ½ÁÇÑ ÇüÅ·μ, attribute °ªÀÌ hyphen ( - :minus±âÈ£)À» Æ÷ÇÔÇϰí ÀÖÀ» °æ¿ì '-' ±âÈ£ ¾Õ(¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊ ¹æÇâÀ¸·Î)ÀÇ ¹®ÀÚ(µé)°¡, "attVal"¿¡ ÁöÁ¤ÇÑ ¹®ÀÚ(µé)¿Í ÀÏÄ¡ÇÏ´Â °æ¿ì¿¡ Àû¿ë µË´Ï´Ù. À§ÀÇ 'attr' ´ÙÀ½ÀÇ '|' ±âÈ£(vertical bar)´Â keyboard Áß¿¡ ¿øÈ Ç¥½Ã(¶Ç´Â backslash)¸¦ shift key¸¦ ´©¸£°í ÂïÀ» ¶§ »ý±â´Â ±âÈ£ ÀÔ´Ï´Ù. ¾Æ·¡ÀÇ code Áß¿¡ µÎ ¹øÂ° p element´Â 'a'¸¦ Æ÷ÇÔÇϰí ÀÖÁö¸¸ '-' ±âÈ£ ¾Õ¿¡ ÀÖ´Â 'a' °¡ ¾Æ´Ï¹Ç·Î {color:blue;}°¡ Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. E[attr|="attVal"]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Attribute Selector 04</title>
<style type="text/css">
<!--
.a{font-size:12px;}
.b{text-decoration:underline;}
.c{font-family:Arial;}
p[class|="a"]{color:blue;}
-->
</style>
</head>
<body>
<div>
<p class="a-b">12px, underline, blue color</p>
<p class="b-a">underline, arial</p>
<p class="a-c">12px, arial, blue color</p>
</div>
</body>
</html>
ÇâÈÄ IE°¡ CSS Level 2ÀÇ selector¿Í ¸ðµç CSS propertyµéÀ» Áö¿øÇÏ°Ô µÇ¸é...¾î¶² Çö»óÀÌ »ý±æ±î¿ä? ¹°·Ð ÀÌ·± °ÍµéÀ» Áö¿øÇØ¾ß µÊÀº Áö±ØÈ÷ ´ç¿¬ÇÏÁö¸¸, ÇÑÆíÀ¸·Î´Â ÇöÀç ¸¸µé¾îÁø internet »óÀÇ web pageµéÀÇ ´ë´ëÀûÀÎ ¼öÁ¤À¸·Î ÀÎÇÑ ´Ù¼Ò°£ÀÇ È¥¶õÀÌ ÀÖÁö ¾ÊÀ»±î ¿¹»óµÇ¾î ¸Å¿ì °ÆÁ¤ ½º·´½À´Ï´Ù. Á¦ °³ÀÎÀûÀ¸·Îµµ IEÀÇ CSS Level 2ÀÇ Áö¿ø Á¤µµ¿¡ µû¶ó CSS¿¡ ´ëÇÑ ±Ùº»ÀûÀÎ ¼öÁ¤ÀÛ¾÷À» ÇÏ°í ½ÍÀ¸´Ï±î¿ä. ¹¹ Àú¾ß ¾î¶»°Ôµç °Å±â¿¡ ¸ÂÃß°ÚÁö¸¸ Ãʺ¸ÀÚµéÀÌ È¥¶õ¿¡ ÈÛ½ÎÀÌÁö ¾ÊÀ»Áö ¿°·Á µÇ´Â±º¿ä. µé¸®´Â ¸»·Î´Â IE 7ÀÇ ¹ßÇ¥ ½Ã±â°¡ ¿Ã ¿©¸§ Âë ÀÌ¶ó´øµ¥, ÀÌ ÆäÀÌÁö°¡ ±× ¶§¸¦ ´ëºñÇÑ ¾à°£ÀÇ µµ¿òÀÌ¶óµµ µÇ±â¸¦ ¹Ù¶ó¸é¼ ¿©±â¼ ¸¶Ä¡µµ·Ï ÇϰڽÀ´Ï´Ù. IE 7.0 test °á°ú(2006. 9)¼øÀüÈ÷ IE 7.0À» Å×½ºÆ®ÇØ º¼ ¿ä·®À¸·Î ¾²Áöµµ ¾ÊÀ» XP¸¦ ±ò°í IE 7.0À» ¼³Ä¡ÇÑ ÈÄ ÀÌ ÆäÀÌÁöÀÇ ¿¹Á¦µéÀ» Å×½ºÆ® ÇØ º¸¾Ò½À´Ï´Ù. ±×·¨´õ´Ï :lang pseudo class¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö selector µéÀ» Áö¿øÇϴ±º¿ä. Âü°í·Î ¸»Çϸé display propertyÀÇ table °ü·Ã keyword µéÀº ¿©ÀüÈ÷ ¾ÈµÇ°í ÀÖ½À´Ï´Ù. ÀÌ ¹®¼ÀÇ ÀúÀÛ±ÇÀº www.cadvance.org ¿¡ ÀÖ½À´Ï´Ù.
|