ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


HTML, CSS, JavaScript ÀÇ ÀÇÁ¸¼º ÁÙÀ̱â
9³â Àü
´ëºÎºÐÀÇ »çÀÌÆ®µé¿¡´Â ¸¹Àº ¾çÀÇ HTML, CSS, JavaScript °¡ »ç¿ëµÈ´Ù. ÇÁ·ÐÆ®-¾Øµå ÀÇ Äڵ带 Àß Á¤¸®ÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù.

´Ù¼öÀÇ »ç¶÷µéÀÌ ÇÁ·ÐÆ®-¾Øµå Äڵ带 °ÇµéÀÌ´Â °æ¿ì°¡ ¸¹¾ÆÁ®¼­, ÄÚµåÀÇ ¾î´À ºÎºÐÀ» ¼öÁ¤ÇßÀ» ¶§ ÀüÇô »ó°üÀÌ ¾øÀ» °Í °°Àº ºÎºÐ¿¡¼­ ¹®Á¦°¡ »ý±â´Â °æ¿ìµµ ¸¹ÀÌ »ý±ä´Ù.

ÇÁ·ÐÆ® ¾Øµå °³¹ß½Ã, ÀǵµÄ¡ ¾ÊÀº ¿¡·¯¸¦ ¹ß»ý½ÃÅ°Áö ¾Ê±â°¡ ±×¸® ½¬¿îÀÏÀº ¾Æ´Ï´Ù. HTML, CSS, JavaScript °¡ Å»ýÀûÀ¸·Î, ¼­·Î ÀÇÁ¸¼ºÀÌ ³ô±â ¶§¹®¿¡ ¸»ÀÌ´Ù.

¼­¹ö ÂÊ¿¡¼­´Â ¿À·¡Àü ºÎÅÍ ³íÀǵǾú´ø, ¸ðµâÈ­ (separation of concerns) ¶ó´Â ÁÖÁ¦µµ, ÇÁ·ÐÆ® ¾Øµå ÂÊ¿¡¼­´Â ±×¸® ¸¹ÀÌ ´Ù·çÁö ¾Ê´Â´Ù.

ÀÌ ¹®¼­¿¡¼­´Â, ³»°¡ ¾î¶»°Ô HTML, CSS, JavaScript ¸¦ ºÐ¸®ÇÏ°Ô µÇ¾ú´ÂÁö¿¡ ´ëÇÏ¿© ¾ê±âÇÏ·Á ÇÑ´Ù. ³» °æÇèÀ̳ª, ³»°¡ ¾Æ´Â ´Ù¸¥»ç¶÷µé¿¡ ÀÇÇϸé, Àú°ÍµéÀ» ºÐ¸®ÇÏ´Â ¹æ¹ýÀÌ, Á÷°üÀûÀ¸·Î ½±°Ô ¶°¿À¸£Áö´Â ¾Ê´Â °Í °°´Ù.

The Goal

HTML, CSS, ¿Í JavaScript ´Â ¾ðÁ¦³ª ¼­·Î ÀÇÁ¸ÇÒ (coupling) °ÍÀÌ´Ù. ÀÌ ±â¼úµéÀº ¼­·Î »óÈ£ÀÛ¿ë Çϵµ·Ï ¸¸µé¾îÁ³±â ¶§¹®ÀÌ´Ù. ¿¹¸¦µé¾î fly-in transition Àº stylesheet ÀÇ Å¬·¡½º ¼±ÅÃÀÚ·Î Á¤ÀÇÇÏÁö¸¸, À¯ÀúÀÇ µ¿ÀÛ¿¡ ÀÇÇØ JavaScript ·Î ¹ß»ý½ÃÅ°°í, Ŭ·¡½º¸¦ HTML ¿¡ Ãß°¡ÇÔÀ¸·Î½á ½ÃÀÛµÉ ¼ö ÀÖ´Ù.

ÇÁ·ÐÆ®-¾Øµå ÄÚµåµéÀÇ ÀÇÁ¸¼ºÀ» ¿ÏÀüÈ÷ Á¦°ÅÇÒ ¼ö´Â ¾ø´Ù. ºÒÇÊ¿äÇÑ ÀÇÁ¸¼ºÀ» Á¦°ÅÇÏ´Â °ÍÀÌ ¸ñÇ¥°¡ µÇ¾î¾ß ÇÑ´Ù.

¹é¾Øµå °³¹ßÀÚ°¡ HTML ÀÇ ¸¶Å©¾÷À» º¯°æÇÒ ¶§, CSS ±ÔÄ¢À̳ª JavaScript ±â´ÉÀ» ¸Á°¡¶ß¸±±îºÁ °ÆÁ¤ÇÏÁö ¾ÊÀ» ¼ö ÀÖ¾î¾ß ÇÑ´Ù. À¥ °³¹ßÀÌ º¹ÀâÇØÁú ¼ö·Ï, ÀÌ ¸ñÇ¥¸¦ ´Þ¼ºÇÏ´Â °ÍÀÌ Áß¿äÇÏ´Ù.

Anti-Patterns

ÇÁ·ÐÆ®-¾Øµå Äڵ尡 ºÒÇÊ¿äÇÑ ÀÇÁ¸¼ºÀÌ ¸¹´Ù´Â °ÍÀ» ¾Ë±â°¡ ½¬¿î °Í¸¸Àº ¾Æ´Ï´Ù. ±×¸®°í ÀÇÁ¸¼ºÀ» ÁÙÀÌ´Â °Íó·³ º¸ÀÌ´Â °ÍÀÌ »ç½ÇÀº ÀÇÁ¸¼ºÀ» ³ôÀÏ ¼öµµ ÀÖ´Ù´Â Á¡ÀÌ, ÀÇÁ¸¼ºÀÇ Á¤µµ¸¦ ´õ¿í ÆľÇÇϱ⠾î·Æ°Ô ¸¸µç´Ù.

³» ½º½º·Î°¡ ¹üÇÑ ¾ÈÁÁÀº ÆÐÅϵ鿡 ´ëÇؼ­ ¾ê±âÇÏ·Á ÇÑ´Ù. °¢°¢ÀÇ ¿¹µéÀÌ ¿Ö ¾È ÁÁÀºÁö, ¾î¶»°Ô ¼öÁ¤ÇÒ ¼ö ÀÖ´ÂÁö ¼³¸íÇÒ °ÍÀÌ´Ù.

Overly Complex Selectors

CSS Zen Garden (¿ªÁÖ: HTML À» Á¤ÇØ ³õ°í, ¼­·Î ´Ù¸¥ CSS style À» Àû¿ëÇÏ¿©, À¥»çÀÌÆ®°¡ ´Ù¸¥ ¸ð¾çÀ» ¶é ¼ö ÀÖ´Ù´Â °ÍÀ» º¸¿©ÁÖ´Â »çÀÌÆ®) Àº HTML ¸¶Å©¾÷À» ¼öÁ¤ÇÏÁö ¾Ê°í, À¥»çÀÌÆ®ÀÇ ¸ð¾çÀ» ¿ÏÀüÈ÷ º¯ÇüÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» º¸¿©ÁÖ¾ú´Ù. semantic À¥ °³¹ßÀÇ »ó¡À¸·Î, º¸ÀÌ´Â °Í°ú ¿¬°üÀִ Ŭ·¡½ºÀÇ »ç¿ëÀ» ÇÇÇϵµ·Ï ÇÏ¿´´Ù.

¾ð¶æ º¸¸é, CSS Zen Garden Àº ÀÇÁ¸¼ºÀ» ÁÙÀÌ´Â ÁÁÀº ¿¹ÀÎµí º¸ÀδÙ. ÀÌ »çÀÌÆ®´Â ±âº»ÀûÀ¸·Î ¸¶Å©¾÷°ú ½ºÅ¸ÀÏÀ» ºÐ¸®ÇÏ°í Àֱ⠶§¹®ÀÌ´Ù. ÇÏÁö¸¸, ¸¶Å©¾÷¿¡ ¼ÕÀ» ÀüÇô ¾È´ë·Á¸é ´ÙÀ½°ú °°Àº ¼±ÅÃÀÚµéÀ» »ç¿ëÇÏ°Ô µÈ´Ù:
#sidebar section:first-child h3 + p { }

CSS Zen Garden ÀÇ HTML Àº CSS ¸¦ ÀüÇô ½Å°æ¾²Áö ¾ÊÁö¸¸, CSS ´Â ¿ÏÀüÈ÷ HTML ÀÇ ±¸Á¶¿¡ ÀÇÁ¸ÀûÀÌ µÇ¾î ¹ö·È´Ù.

CSS ¸¦ °ü¸®ÇÏ´Â »ç¶÷ÀÌ HTML µµ °ü¸®ÇÑ´Ù¸é, ¾ÆÁÖ Å« ¹®Á¦°¡ ¾Æ´Ï¶ó°í »ý°¢ÇÒ Áöµµ ¸ð¸£°Ú´Ù. ÇÏÁö¸¸, ¾î´À °³¹ßÀÚ°¡ ¿Í¼­ <section> ¾Õ¿¡ <div> ¸¦ Ãß°¡ÇÏ°Ô µÇ¸é, À§ ¼±ÅÃÀÚ´Â ´õÀÌ»ó µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.

CSS Zen Garden °ú °°ÀÌ ÀÛ¾÷ÇÏ´Â °ÍÀº »çÀÌÆ®ÀÇ ¸¶Å©¾÷ÀÌ º¯°æµÉ ÀÏÀÌ Àß ¾øÀ» ¶§¿¡´Â ÁÁÀ» ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸ ¿äÁò ±×·± À¥»çÀÌÆ®´Â ±×¸® ¸¹Áö ¾Ê´Ù.

Àú·¸°Ô ±æ°í º¹ÀâÇÑ CSS ¼±ÅÃÀÚº¸´Ù´Â, º¯°æÇÏ·Á´Â ¿ä¼Ò¿¡ Á÷Á¢ Ŭ·¡½º¸¦ ¼³Á¤ÇÏ´Â °ÍÀÌ ÁÁ´Ù. ¿¹¸¦µé¾î, »çÀ̵å¹Ù¿¡ ¼­ºê¸Þ´º°¡ ÀÖ´Ù¸é, °¢°¢ÀÇ submenu ¿ä¼Òµé¿¡ submenu ¶ó´Â Ŭ·¡½º¸¦ Ãß°¡ÇÏ´Â °ÍÀÌ ÁÁ´Ù. ´ÙÀ½Ã³·³ ÇÏÁö ¸»¾Æ¶ó:
ul.sidebar > li > ul {
  /* submenu styles */
}

Ŭ·¡½º¸¦ Ãß°¡Çϸé, HTML °ú CSS ÀÇ ÀÇÁ¸¼ºÀ» ÁÙÀÌ°í, Àå±âÀûÀ¸·Î ºÃÀ» ¶§ ÈξÀ °ü¸®ÇϱⰡ ½¬¿öÁø´Ù. ±×¸®°í markup À» ¹®¼­È­ (Ŭ·¡½º À̸§À¸·Î) ÇÏ´Â È¿°úµµ ¾ò°Ô µÈ´Ù. HTML ¿¡ Ŭ·¡½º°¡ ¾øÀ¸¸é, HTML À» º¯°æÇÒ ¶§, CSS ÀÇ ¾î¶² ·êµéÀÌ ¿µÇâÀ» ¹ÞÀ»Áö ¾Ë±â ¾î·Æ´Ù. Ŭ·¡½º°¡ ÀÖ´Â °æ¿ì¿¡´Â, ¾î¶² style °ú ±â´ÉµéÀÌ Àû¿ëµÇ´ÂÁö ÇÑ´«¿¡ ¾Ë±â ½±´Ù.

Classes With More Than One Responsibility

ÇϳªÀÇ Å¬·¡½º¸¦ style °ú JavaScript µÎ°¡Áö¿¡¼­ ¸ðµÎ »ç¿ëÇÏ°ï ÇÑ´Ù. Ŭ·¡½º Çϳª·Î µÎ°¡Áö ÀÏÀ» ÇÒ ¼ö ÀÖÀ¸´Ï ÁÁÀº °Í °°Áö¸¸, style À» ±â´É°ú °áºÎ½ÃÅ°´Â ¾ÈÁÁÀº ÇüÅÂÀÌ´Ù.
<button class="add-item">Add to Cart</button>

À§ ¿¹Á¦´Â add-item Ŭ·¡½º·Î style µÈ "Add to Cart" ¹öÆ°À» º¸¿©ÁØ´Ù.

°³¹ßÀÚ°¡ ÀÌ ¿ä¼Ò¿¡ click event listener ¸¦ Ãß°¡ÇÏ·Á°í ÇÒ ¶§, ÀÌ¹Ì Á¸ÀçÇÏ´Â add-item Ŭ·¡½º¸¦ ÀÌ¿ëÇÏ°í ½ÍÀ» ¼ö ÀÖ´Ù. ÀÌ¹Ì Å¬·¡½º°¡ Á¸ÀçÇϴµ¥ ¿Ö ±»ÀÌ µû·Î ¸¸µéÇÊ¿ä°¡ ¾øÁö ¾Ê³ª ÇÏ°í »ý°¢ÇÏ´Â °ÍÀÌ´Ù.

ÇÏÁö¸¸, »çÀÌÆ®¿¡ ¸¹Àº ¹öÆ°ÀÌ °°Àº style À» °¡Áö°í, °°Àº ÀÚ¹Ù½ºÅ©¸³Æ® ±â´ÉÀ» ¼öÇàÇÑ´Ù°í Çغ¸ÀÚ. ±×¸®°í ¿µ¾÷ºÎ¼­¿¡¼­, ÀÌ ¹öÆ°µé Áß Çϳª¸¦ »ç¶÷µé ´«¿¡ Àß ¶ç°Ô Å©°Ô º¯°æÇØ´Þ¶ó°í Çß´Ù°í Çغ¸ÀÚ.

ÀÚ¹Ù½ºÅ©¸³Æ® Äڵ尡 add-item Ŭ·¡½º¸¦ ÀÌ¿ëÇϱ⠶§¹®¿¡, ÀÌ Å¬·¡½º¸¦ Á¦°ÅÇÒ ¼ö ¾øÁö¸¸, ¹öÆ°ÀÇ »õ ¸ð¾çÀ» Àû¿ëÇÏ·Á¸é add-item Ŭ·¡½º¸¦ »ç¿ëÇÏ¸é ¾ÈµÈ´Ù (±×·¸Áö ¾ÊÀ¸¸é, ¼³Á¤°ªÀ» ¸ðµÎ Ãë¼ÒÇÏ°í, »õ·Î¿î ½ºÅ¸ÀÏÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù). add-item Ŭ·¡½º¸¦ ÀÌ¿ëÇÏ´Â Å×½ºÆ® ÄÚµåµîÀÌ ´Ù¸¥ °÷¿¡ ÀÖ´Ù¸é, ¹®Á¦´Â ´õ º¹ÀâÇØ Áø´Ù.

"Add to Cart" ¶ó´Â ±â´ÉÀÌ ÀÌ »çÀÌÆ® »Ó¸¸ÀÌ ¾Æ´Ñ ´Ù¸¥ »çÀÌÆ®¿¡¼­µµ »ç¿ëÇÏ´Â ÄÚµå¶ó¸é, ¹®Á¦´Â ´õ ½É°¢ÇØ Áú ¼ö ÀÖ´Ù.

JavaScript ¸¦ À§ÇØ Å¬·¡½º¸¦ ¼³Á¤ÇÏ´Â °ÍÀº ÁÁÀ¸³ª, ÀÌ ¶§¿¡´Â, ½ºÅ¸ÀÏ°ú ±â´É µÎ°¡Áö¸¦ ºÐ¸®ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù.

°³ÀÎÀûÀ¸·Î´Â ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ À§ÇÑ Å¬·¡½º¿¡´Â js- ¸¦ ¾Õ¿¡ ºÙÀδÙ. ÀÌ·¸°Ô Çϸé, °³¹ßÀÚ°¡ Äڵ带 º¸°í ÀÌ Å¬·¡½ºÀÇ ¿ªÈ°ÀÌ ¹«¾ùÀÎÁö ÇÑ´«¿¡ ¾Ë¾Æ º¼ ¼ö ÀÖ°Ô µÈ´Ù.

À§ ¿¹Á¦¸¦ ´ÙÀ½°ú °°ÀÌ º¯°æÇÑ´Ù:
<button class="js-add-to-cart add-item">Add to Cart</button>

"Add to Cart" ¹öÆ°µé Áß Çϳª¸¸ Ưº°ÇÑ ¸ð¾çÀ¸·Î º¯°æÇÏ·Á¸é, ´ÙÀ½Ã³·³ ½ºÅ¸ÀÏ Å¬·¡½º¸¦ º¯°æÇÏ°í, ±â´É¿¡ °ü·ÃµÈ Ŭ·¡½º´Â ±×´ë·Î »ç¿ëÇÏ¸é µÈ´Ù:
<button class="js-add-to-cart add-item-special">Add to Cart</button>

JavaScript That Knows Too Much About Styling

ÀÚ¹Ù½ºÅ©¸³Æ®´Â class ¸¦ ÀÌ¿ëÇÏ¿© DOM ÀÇ ¿ä¼Ò¸¦ ãÀ»¼öµµ ÀÖ°í, ¿ä¼ÒÀÇ ½ºÅ¸ÀÏÀ» º¯°æÇϱâ À§ÇØ Å¬·¡½º¸¦ Ãß°¡Çϰųª Á¦°ÅÇÒ ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸ ÀÌ·¸°Ô Ãß°¡Çϰųª Á¦°ÅÇϴ Ŭ·¡½ºµéÀÌ, ÆäÀÌÁö ·Îµù½Ã º¸¿©Áö´Â Ŭ·¡½ºµé°ú ±¸º°ÀÌ µÇÁö ¾ÊÀ¸¸é ¹®Á¦°¡ µÉ ¼ö ÀÖ´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ® Äڵ尡 style ¿¡ ´ëÇØ ³Ê¹« °ü¿©Çϸé, CSS °³¹ßÀÚ°¡ stylesheet ¸¦ º¯°æÇϸ鼭, ÀǵµÄ¡ ¾Ê°Ô ÀÚ¹Ù½ºÅ©¸³Æ® ±â´ÉÀ» ¸Á°¡¶ß¸± ¼ö ÀÖ´Ù.

À¯ÀúÀÇ ¾×¼Ç¿¡ µû¶ó, ÀÚ¹Ù½ºÅ©¸³Æ®·Î style À» º¯ÇüÇÏ´Â °ÍÀ» ÇÏÁö ¸»¶ó´Â °ÍÀº ¾Æ´Ï´Ù. ´Ù¸¸ style À» º¯°æÇÒ ¶§´Â, ¾à¼ÓµÈ interface ¸¦ ÅëÇؼ­ Ç϶ó´Â °ÍÀÌ´Ù. Ŭ·¡½º À̸§¿¡ ÀÚ¹Ù½ºÅ©¸³Æ®·Î º¯°æÇϴ Ŭ·¡½º¶ó´Â °ÍÀ» ¸í½ÃÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

³» °æ¿ì¿£, »óŸ¦ º¯°æÇÒ ¼ö Àִ Ŭ·¡½ºµé¿¡´Â is- ¸¦ ¾Õ¿¡ ºÙÀδÙ. ´ÙÀ½Ã³·³ ¸»ÀÌ´Ù:
.pop-up.is-visible { }

is-visible À̶ó´Â »óŸ¦ ³ªÅ¸³»´Â Ŭ·¡½º°¡, ¿ä¼ÒÀÇ Å¬·¡½ºÀÎ pop-up ¿¡ ºÙ¿©Á® ÀÖ´Ù. ¿ä¼ÒÀÇ »óŸ¦ ³ªÅ¸³»±â ¶§¹®¿¡, ¿ä¼Ò¿¡ ºÙ¿©¼­ »ç¿ëÇÏ´Â °ÍÀÌ´Ù.

is- µîÀ» ºÙ¿©¼­ »ç¿ëÇϱâ·Î Á¤Çϸé, ÀÌ ±ÔÄ¢ÀÌ Àß ÁöÄÑÁö°í ÀÖ´ÂÁö, CSSLint ³ª HTML Inspector µîÀ» ÀÌ¿ëÇÏ¿©, Å×½ºÆ® ÇÒ ¼öµµ ÀÖ´Ù.

»óÅ¿¡ °ü·ÃµÈ Ŭ·¡½ºµé¿¡ ´ëÇؼ­´Â Jonathan Snook ÀÇ SMACSS Ã¥¿¡ Àß ³ª¿Í ÀÖ´Ù.

JavaScript "Selectors"

document.querySelectorAll °°Àº API ³ª jQuery ´Â CSS ¼±ÅÃÀÚ¸¦ ÀÌ¿ëÇÏ¿© DOM ÀÇ ¿ä¼Ò¸¦ ã±â ½±°Ô ÇÏ¿©ÁØ´Ù. ¾ÆÁÖ Æí¸®ÇÏÁö¸¸, CSS ¼±ÅÃÀÚ°¡ °®´Â µ¿ÀÏÇÑ ¹®Á¦¸¦ °®´Â´Ù.

JavaScript ÀÇ "¼±ÅÃÀÚ" µé ¶ÇÇÑ, DOM ±¸Á¶¿¡ ³Ê¹« Á¾¼ÓÀûÀÌ¸é ¾ÈµÈ´Ù. ÀÌ·± ¼±ÅÃÀÚµéÀº ¼º´É»ó ´À¸± »Ó´õ·¯, HTML ÀÇ ±¸Á¶¸¦ Àß ¾Ë¾Æ¾ß µÈ´Ù´Â ´ÜÁ¡ÀÌ ÀÖ´Ù.

ÀÌÀü¿¡ ¾ð±ÞÇÑ °Íó·³, HTML ÀÛ¾÷À» ÇÏ´Â °³¹ßÀÚ´Â, ±â´ÉÀ̳ª ½ºÅ¸ÀÏÀ» ¸Á°¡¶ß¸±±î °ÆÁ¤ÇÏÁö ¾Ê°í, HTML À» º¯°æÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ±â´ÉÀ̳ª ½ºÅ¸ÀÏÀÌ ¿µÇâÀ» ¹ÞÀ» ¼ö ÀÖ´Ù¸é, HTML ¿¡ ¸íÈ®È÷ Ç¥ÇöÀÌ µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. (¿ªÁÖ: Ŭ·¡½º¸íÀ¸·Î)

ÀÚ¹Ù½ºÅ©¸³Æ®°¡ »ç¿ëÇÒ Å¬·¡½º¿¡ js- ¸¦ ºÙÀÌ´Â ¹æ¹ýÀ» ÀÌ¹Ì ¼Ò°³ÇÏ¿´´Ù. style Ŭ·¡½º¿Í javascript Ŭ·¡½º¸¦ ºÐ¸®ÇÏ´Â ¿ªÈ°À» ÇÔ°ú µ¿½Ã¿¡, Äڵ带 º¸´Â »ç¶÷¿¡°Ô, À̺κÐÀÇ HTML ÀÌ ÀÚ¹Ù½ºÅ©¸³Æ®¿Í ¿¬°üÀÌ ÀÖ´Ù´Â °ÍÀ» ¾Ë·ÁÁÖ´Â ¿ªÈ°À» ÇÑ´Ù. Ŭ·¡½º¸íÀ¸·Î ¸í½ÃÇÏÁö ¾Ê°í, ¸¶Å©¾÷ÀÇ ±¸Á¶¿¡ ÀÇÁ¸ÇÑ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ »ç¿ëÇÑ´Ù¸é, HTML À» º¸´Â »ç¶÷ÀÌ, HTML ÀÌ javascript ¿¡ ÀÇÇØ »ç¿ëµÈ´Ù´Â °ÍÀ» ¾Ë ¼ö°¡ ¾øÀ» °ÍÀÌ´Ù.

DOM À» ±æ°Ô »ç¿ëÇÏ´Â º¹ÀâÇÑ ¼±ÅÃÀÚ ´ë½Å¿¡, Ŭ·¡½º³ª ID ¸¦ »ç¿ëÇÏ´Â ¼±ÅÃÀÚ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù.

´ÙÀ½ Äڵ带 º¸¶ó:
var saveBtn = document.querySelector("#modal div:last-child > button:last-child")

ÀÌ·¸°Ô ±ä selector ¸¦ »ç¿ëÇÏ¿© HTML ¿¡ Ŭ·¡½º¸¦ Ãß°¡ÇÏÁö ¾Ê¾Æµµ µÉÁö ¸ð¸£Áö¸¸, ¸¶Å©¾÷ º¯°æÀÌ ÀÖÀ» °æ¿ì, ÀÌ ¼±ÅÃÀÚ´Â µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. µðÀÚÀ̳ʰ¡ save ¹öÆ°°ú cancel ¹öÆ°ÀÇ À§Ä¡¸¦ ¹Ù²ÙÀÚ°í ÇÑ´Ù¸é, À§ ¼±ÅÃÀÚ´Â ´õÀÌ»ó µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.

´ÙÀ½ ó·³ Ŭ·¡½º¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ ÈξÀ ÁÁ´Ù.
var saveBtn = document.querySelector(".js-save-btn")

Ŭ·¡½º¸¦ »ç¿ëÇϰԵǸé, ¸¶Å©¾÷À» ¾î¶»°Ô º¯ÇüÇÏµç »ó°üÀÌ ¾ø°Ô µÈ´Ù.

Classes Are Your Contract

´ëºÎºÐÀÇ HTML, CSS, JavaScript ÀÇÁ¸¼ºÀº, ÀûÇÕÇÒ ¶§ Ŭ·¡½º¸¦ »ç¿ëÇÏ°í, Ŭ·¡½º¸íÀ» Àß ÁöÀ½À¸·Î½á ÇØ°áÇÒ ¼ö ÀÖ´Ù.

Ŭ·¡½º¸¦ ¸¹ÀÌ »ç¿ëÇϸé, HTML ÀÌ ÀÌ Å¬·¡½ºµéÀ» ¾Ë°ÔµÇ°í, µû¶ó¼­ ¸¹Àº Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â °ÍÀÌ, ÀÇÁ¸¼ºÀ» ³ôÀÌ´Â °Íó·³ º¸ÀÏ ¼öµµ ÀÖ´Ù. ÇÏÁö¸¸, ³»°¡ º¸±â¿¡ Ŭ·¡½º¶õ, À̺¥Æ®³ª ¿ÉÀú¹ö ÆÐÅÏ°ú À¯»çÇÑ °Í °°´Ù.

À̺¥Æ® ±â¹ÝÀÇ ÇÁ·Î±×·¡¹Ö¿¡¼­´Â, A °´Ã¼°¡ B °´Ã¼ÀÇ ÇÔ¼ö¸¦ ºÎ¸£´Â °ÍÀÌ ¾Æ´Ï¶ó, ƯÁ¤ Á¶°Ç¿¡¼­ À̺¥Æ®¸¦ ¹æ»ý½ÃÅ°°í, B ´Â ±× À̺¥Æ®¸¦ µè°í ÀÖ´Â ÇüŸ¦ ÃëÇÑ´Ù. B ´Â A ÀÇ interface ¸¦ ¸¹ÀÌ ¾Ë ÇÊ¿ä ¾øÀÌ, ¾î¶² À̺¥Æ®¿¡ °ü½ÉÀ» °¡Áú °ÍÀÎÁö¸¸ °áÁ¤ÇÏ¸é µÈ´Ù.

¹°·Ð, B °¡ °ü½É ÀÖ´Â event ÀÇ À̸§µéÀ» ¾Ë¾Æ¾ß µÇÁö¸¸, A °¡ B ÀÇ ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °Íº¸´Ù´Â ÀÇÁ¸¼ºÀÌ Àû´Ù°í »ý°¢ÇÑ´Ù.

HTML ÀÇ class µéµµ ÀÌ¿Í ºñ½ÁÇÏ´Ù. CSS °¡ º¹ÀâÇÑ ¼±ÅÃÀÚ¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó (À§ÀÇ ºñÀ¯¸¦ ÀÌ¿ëÇÏÀÚ¸é, HTML ÀÇ interface ¸¦ ÀÏÀÏÀÌ ¾ËÇÊ¿ä ¾øÀÌ), Ŭ·¡½º ¸¸À¸·Î ¿ä¼ÒÀÇ ½ºÅ¸ÀÏÀ» Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. HTML Àº ÀÌ Å¬·¡½º¸¦ ÀÌ¿ëÇÒÁö ¾ÈÇÒÁö¸¸ Á¤ÇÏ¸é µÈ´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®µµ ¸¶Âù°¡Áö·Î DOM ÀÇ ±¸Á¶¸¦ ¾ËÇÊ¿ä ¾øÀÌ, class ¸¸À¸·Î ¿ä¼Ò¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

HTML, CSS, JavaScript ¸¦ ¿¬°áÇÏ´Â °í¸®´Â class °¡ µÇ¾î¾ß ÇÑ´Ù. ³» °æÇèÀ¸·Î´Â, ÀÌ·¸°Ô ÇÏ´Â °ÍÀÌ ÀÌ ¼¼°¡Áö¸¦ ¿«´Â °¡Àå ÁÁÀº ¹æ¹ýÀÌ´Ù.

The Future

WHATWG ´Â °³¹ßÀÚ°¡ HTML, CSS, JavaScript ÀÇ ¸ðµâÈ­¸¦ µµ¿ï Web Components ¶ó´Â °ÍÀÇ spec À» ¸¸µé°í ÀÖ´Ù.

¸¹Àº ºê¶ó¿ìÀúµéÀÌ ÀÌ spec À» ±¸ÇöÇϸé, ³»°¡ ÀÌ ¹®¼­¿¡¼­ ¾ê±âÇÏ´Â °ÍµéÀº Á» ´ú Áß¿äÇÏ°Ô µÉ °ÍÀÌ´Ù; ÇÏÁö¸¸, ¿ø¸®¸¦ ÀÌÇØÇÏ°í ¿Ö ÀÌ·± ÀÛ¾÷ÀÌ ÇÊ¿äÇÑÁö¸¦ ¾Æ´Â °ÍÀÌ Áß¿äÇÏ´Ù.

Conclusion

HTML, CSS, JavaScript ¸¦ ÆíÇÏ°Ô °ü¸®ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº, °³º° °³¹ßÀÚµéÀÌ, ÀǵµÄ¡ ¾ÊÀº ¹ö±×¸¦ ¹ß»ý½ÃÅ°Áö ¾Ê°í, °³¹ßÀ» ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.

ÀǵµÄ¡ ¾ÊÀº ¹ö±×¸¦ ¹ß»ý½ÃÅ°Áö ¾Ê´Â ÁÁÀº ¹æ¹ýÀº, class ¿¡ Àǵµ¸¦ ¾Ë ¼ö ÀÖ´Â À̸§À» Áö¾îÁÖ¾î, ´Ù¸¥ »ç¶÷µéÀÌ ½±°Ô Àǵµ¸¦ ÆľÇÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â °ÍÀÌ´Ù.

´ÙÀ½°ú °°Àº ¿øÄ¢µé·Î Á¤¸®ÇÒ ¼ö ÀÖ´Ù:
•º¹ÀâÇÑ CSS ¼±ÅÃÀÚº¸´Ù´Â, ¸íÈ®ÇÑ Å¬·¡½º¸íÀ» »ç¿ëÇÑ´Ù. CSS ¿Í JavaScript ¿¡¼­ ¸»ÀÌ´Ù.
•¾î¶² ¿ä¼ÒÀÎÁö¸¦ ±¸ºÐÇÏ¿© ÀÛ¾÷ÇÏ°í, ¾îµð¿¡ ÀÖ´Â ¿ä¼ÒÀÎÁö¸¦ ±â¹ÝÀ¸·Î ÀÛ¾÷ÇÏÁö ¸»¾Æ¶ó.
•style °ú ±â´É µÎ°¡Áö´Â ´Ù¸£´Ù, µÎ°³ÀÇ ´Ù¸¥ Ŭ·¡½º¸¦ ÀÌ¿ëÇ϶ó.
•±âº» style °ú »óÅ style À» ±¸ºÐÇ϶ó.

À§Ã³·³ ÇÏ·Á¸é, HTML ¿¡ ¸¹Àº Ŭ·¡½º¸¦ Ãß°¡ÇØ¾ß ÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ±×·Î½á ¾ò´Â ÀÌÁ¡ÀÌ ¸Å¿ì Å©´Ù. HTML ¿¡ Ŭ·¡½º¸¦ Ãß°¡ÇÏ´Â °ÍÀº ´©±¸³ª ÇÒ ¼ö ÀÖ´Â ½¬¿î ÀÏÀ̱⵵ ÇÏ´Ù.
ÃßõÃßõ : 404 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,885
input ÀÔ·Â ÇÊµå ¾ÕµÚ °ø¹é ½Ç½Ã°£ Á¦°Å
2,884
Placeholder Æ÷Ä¿½º½Ã °¨Ãß±â
2,883
MySQL Áߺ¹µÈ µ¥ÀÌÅ͸¦ »èÁ¦
2,882
MySQL Áߺ¹ µ¥ÀÌÅÍ È®ÀÎ
2,881
sessionStorage.getItem ¿Í sessionStorage.setItem
2,880
Á¦ÀÌÄõ¸® ·£´ýÀ¸·Î ¹è°æ»ö º¯°æ
2,879
preg match¿¡ °üÇÑ Á¤±Ô½Ä
2,878
Stream an audio file with MediaPlayer ¿Àµð¿À ÆÄÀÏ ½ºÆ®¸®¹Ö Çϱâ
2,877
Audio Streaming PHP Code
2,876
PHP $ SERVER ȯ°æ º¯¼ö Á¤¸®
2,875
Vimeo (ºñ¸Þ¿À) API ¸¦ »ç¿ëÇÏ¿© Ç÷¹À̾î ÄÁÆ®·ÑÇϱâ
2,874
iframe »ç¿ë½Ã ÇÏ´Ü¿¡ ¹ß»ýÇÏ´Â °ø¹é Á¦°Å¹æ¹ý
2,873
¾ÆÀÌÇÁ·¹ÀÓ(iframe) Àüüȭ¸é °¡´ÉÇÏ°Ô Çϱâ
2,872
ºÎÆ®½ºÆ®·¦(bootstrapk)¿¡¼­ »ç¿ëÇÏ´Â class¸í Á¤¸®
2,871
ºÎÆ®½ºÆ®·¦ CSS
2,870
Å©·Ò¿¡¼­ ¸¶Áø Á¶Àý
2,869
PHP ÇöÀç ÆäÀÌÁöÀÇ µµ¸ÞÀθíÀ̳ª urlµîÀÇ Á¤º¸ ¾Ë¾Æ¿À±â
2,868
PHP preg match all()
2,867
PHP ·Î À¥ÆäÀÌÁö ±Ü¾î¿À±â ¸ðµç ¹æ¹ý ÃÑÁ¤¸®!
2,866
[PHP] ¿ø°ÝÁö ÆÄÀÏ ÁÖ¼Ò ³ëÃâ ¾ÈÇÏ°í curl·Î ´Ù¿î·Îµå ¹Þ±â
2,865
PHP ÇÔ¼ö Á¤¸®
2,864
¾ÆÀÌÇÁ·¹ÀÓ(iframe) ºñÀ² À¯ÁöÇϸ鼭 Å©±â Á¶ÀýÇÏ´Â ¹æ¹ý
2,863
PHP ¹è¿­¿¡¼­ ¹«ÀÛÀ§·Î Çϳª »Ì¾ÆÁÖ´Â array rand() ÇÔ¼ö
2,862
PHP Á¤±Ô½Ä Á¤¸®
2,861
PHP Á¤±Ô½ÄÀ» È°¿ëÇÑ ÅÂ±× ¹× ƯÁ¤ ¹®ÀÚ¿­ Á¦°Å ¹× ÃßÃâ ¹æ¹ý
2,860
php Å©·Ñ¸µ ¶Ç´Â ÆÄ½Ì ÇÔ¼ö, Á¤±Ô½Ä ¸ðÀ½
2,859
Á¦ÀÌÄõ¸® ±âº» ¸í·É¾î
2,858
À¥ÆäÀÌÁö °¡·Î ¸ðµå¼¼·Î ¸ðµå ÀνÄÇϱâ
2,857
¸ð¹ÙÀÏ À¥ È­¸é °­Á¦ ȸÀü(°¡·Î¸ðµå °íÁ¤)
2,856
[HTML5]¿¡¼­ frameset ´ëü ¹æ¹ý°ú iframe ¼Ó¼º
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.