ä¯ÀÀÆ÷ÒªÔÚÆÁÄ»ÉÏäÖȾÄÚÈÝ£¬ÐèÒªÏȹ¹½¨ DOM Óë CSSOM Ê÷¡£Òò´Ë£¬ÎÒÃÇÐèҪȷ±£½« HTML ºÍ CSS ¾¡¿ÉÄÜ¿ìµØÌṩ¸øä¯ÀÀÆ÷¡£
ÈÃÎÒÃÇ´Ó×î¼òµ¥µÄ¿ÉÄÜÇé¿ö¿ªÊ¼Ëµ£ºÒ»¸öÆÕͨ HTML ÍøÒ³£¬°üº¬Ò»Ð©ÎÄ×Ö£¬Ò»ÕÅͼƬ¡£ä¯ÀÀÆ÷ÐèÒª×öʲô²ÅÄÜ´¦ÀíÕâ¸ö¼òµ¥Ò³ÃæÄØ£¿
ÉÏÊöÕû¸öÁ÷³ÌµÄ×îÖÕÊä³öÊÇÎĵµ¶ÔÏóÄ£ÐÍ£¬¼´Õâ¸ö¼òµ¥ÍøÒ³µÄ “DOM”£¬ä¯ÀÀÆ÷ʹÓÃËüÍê³ÉÒ³ÃæµÄËùÓкóÐø´¦Àí¡£
ÿ´Îä¯ÀÀÆ÷´¦Àí HTML ±ê¼Ç£¬¶¼ÒªÍê³ÉÉÏÊö¸÷¸ö²½Ö裺½«×Ö½Úת»»Îª×Ö·û£¬È·ÈÏ·ûºÅ£¬½«·ûºÅת»»Îª½Úµã£¬È»ºó¹¹½¨ DOM Ê÷¡£Õû¸ö¹ý³ÌÐèҪһЩʱ¼ä£¬´¦Àí´óÁ¿ HTML ʱ¸üÊÇÈç´Ë¡£
Note
¡¡¡¡Èç¹ûÄú´ò¿ª Chrome DevTools£¬²¢ÔÚÒ³Ãæ¼ÓÔØÊ±Â¼ÖÆÊ±¼äÖᣬÄã¿ÉÒÔ¿´µ½Ö´ÐÐÕâÒ»²½ÖèËùÐèµÄʵ¼Êʱ¼ä — ÔÚÉÏÀýÖУ¬½«Ò»¶Ñ HTML ×Ö½Úת»»Îª DOM Ê÷´óÔ¼ÐèÒª 5 ºÁÃë¡£µ±È»£¬Èç¹ûÒ³Ãæ¸ü´ó£¨´ó¶àÊýÒ³Ãæ¶¼ÊÇÈç´Ë£©£¬Õâ¸ö¹ý³ÌÐèÒªµÄʱ¼ä¹À¼Æ»á¸ü¶à¡£ÔÚºóÃæ´´½¨Á÷³©¶¯»µÄÕ½ÚÖУ¬Äú»á¿´µ½£¬Èç¹ûä¯ÀÀÆ÷±ØÐë´¦Àí´óÁ¿ HTML£¬ÕâºÜ¿ÉÄܱä³ÉÄãµÄÆ¿¾±¡£
¡¡¡¡DOM Ê÷×¼±¸¾ÍÐ÷ºó£¬ÎÒÃÇÊÇ·ñ¾ÍÓÐ×ã¹»ÐÅÏ¢ÔÚÆÁÄ»ÉÏäÖÈ¾Ò³ÃæÁË£¿»¹²»ÐУ¡DOM Ê÷²¶»ñÎĵµ±ê¼ÇµÄÊôÐÔ¼°¹ØÏµ£¬µ«Ã»ÓиæËßÎÒÃÇÔªËØÔÚäÖȾʱÊÇʲôÑù×Ó¡£ÕâÊÇ CSSOM µÄÔðÈΣ¬Ò²¾ÍÊÇÎÒÃǽÓÏÂÀ´Òª½²µÄ¡£
CSS ¶ÔÏóÄ£ÐÍ (CSSOM)
ä¯ÀÀÆ÷ÔÚ¹¹½¨ÎÒÃǵļòµ¥Ò³Ãæ DOM ʱ£¬ÔÚÎĵµµÄ head ²¿·ÖÅöÉÏÒ»¸ö link ±êÇ©£¬ÒýÓÃÁËÍⲿ CSS Ñùʽ±í style.css¡£ä¯ÀÀÆ÷Ô¤¼ûµ½Ëü»áÐèÒªÕâ¸ö×ÊÔ´À´äÖÈ¾Ò³Ãæ£¬Òò´Ë»áÁ¢¼´·¢³öÒ»¸ö¸Ã×ÊÔ´µÄÇëÇ󣬸ÃÇëÇó·µ»ØÒÔÏÂÄÚÈÝ£º
body { font-size: 16px } p { font-weight: bold } span { color: red } p span { display: none } img { float: right }
µ±È»£¬ÎÒÃDZ¾¿ÉÒÔÔÚ HTML ±ê¼ÇÖÐÖ±½ÓÉùÃ÷Ñùʽ£¨ÄÚÁª£©£¬µ«ÊÇ£¬½« CSS Óë HTML ·Ö¿ª£¬ÎÒÃǾͿÉÒÔ·ÖÀë¹Ø×¢µã£ºÉè¼ÆÈËÔ±´¦Àí CSS£¬¿ª·¢ÈËÔ±¹Ø×¢ HTML£¬µÈµÈ¡£
Óë HTML Ò»Ñù£¬ÎÒÃÇÐèÒª½«ÊÕµ½µÄ CSS ¹æÔòת»»Îªä¯ÀÀÆ÷¿ÉÒÔÀí½â¡¢Äܹ»´¦ÀíµÄ¶«Î÷¡£Òò´Ë£¬ÎÒÃÇÔÙÖØ¸´Ò»´ÎÓë´¦Àí HTML ·Ç³£ÏàËÆµÄ¹ý³Ì£º
CSS ×Ö½Ú»áת»»Îª×Ö·û£¬È»ºóת»»Îª·ûºÅºÍ½Úµã£¬×îºóÁ´½Ó½øÊ÷×´½á¹¹ÉÏ£¬¼´Ëùν¡¸CSS ¶ÔÏóÄ£ÐÍ¡¹£¬ËõдΪ CSSOM£º
CSSOM Ϊʲô²ÉÓÃÊ÷×´½á¹¹£¿ ÔÚ¸øÒ³ÃæÉϵÄÒ»ÇжÔÏó¼ÆËã×îÖÕµÄÑùʽ¼¯Ê±£¬ä¯ÀÀÆ÷»áÏÈ´ÓÓ¦Óøø¸Ã½ÚµãµÄ×îͨÓùæÔò¿ªÊ¼£¨ÀýÈ磬Èç¹û½ÚµãÊÇ body ÔªËØµÄ×ÓÔªËØ£¬ÔòÓ¦ÓÃËùÓÐ body Ñùʽ£©£¬È»ºó£¬Í¨¹ýÓ¦Óøü¾ßÌåµÄ¹æÔòµÝ¹éϸ»¯¼ÆËãµÄÑùʽ - Ò༴¹æÔò¡¸Ïòϲãµþ¡¹¡£
ÔÙ¾ßÌåµã˵£¬ÎÒÃÇÀ´¿´Ò»ÏÂÉÏÃæµÄ CSSOM Ê÷¡£body ÔªËØÖÐ span ±ê¼ÇÄÚ°üº¬µÄÈκÎÎÄ×Ö¾ùÊÇ 16 ÏñËØ×ÖÌå´óС£¬ºìÉ«Îı¾ - font-size Ö¸Áî´Ó body Ïòϲãµþµ½ span¡£µ«ÊÇ£¬Èç¹û span ±êÇ©ÊÇ paragraph (p) ±êÇ©µÄ×Ó±êÇ©£¬ÔòËüµÄÄÚÈݲ»»áÏÔʾ¡£
´ËÍ⣬Çë×¢Ò⣬ÉÏÃæµÄÊ÷²»ÊÇÍêÕûµÄ CSSOM Ê÷£¬ËüÖ»ÏÔʾÁËÎÒÃǾö¶¨ÔÚÑùʽ±íÖи²¸ÇµÄÑùʽ¡£Ã¿¸öä¯ÀÀÆ÷¶¼»áÌṩһÌ×ĬÈϵÄÑùʽ£¬Ò²³ÆÎª¡¸Óû§´úÀíÑùʽ¡¹ – ¼´ÎÒÃDz»ÌṩÈκÎ×Ô¶¨ÒåÑùʽʱ¿´µ½µÄÑùʽ – ÎÒÃǵÄÑùʽֻÊǸ²¸ÇÕâЩĬÈÏÑùʽ¼¯£¨ÀýÈç ĬÈÏ IE Ñùʽ£©¡£Èç¹ûÄúÔøÔÚ Chrome DevTools Öмì²é¹ý¡¸¼ÆËãµÄÑùʽ¡¹£¬²¢ÇÒÏëÖªµÀËùÓÐÑùʽ´ÓºÎÀ´£¬ÏÖÔÚÄúÓ¦¸ÃÖªµÀ´ð°¸ÁË£¡
ºÃÆæ CSS ´¦ÀíÐèÒªµÄʱ¼ä£¿ ÔÚ DevTools ÖÐÂ¼ÖÆÊ±¼äÖᣬ²¢²éÕÒ “Recalculate Style” ʼþ£ºÓë DOM ½âÎö²»Í¬£¬timeline ²»ÏÔʾµ¥¶ÀµÄ “Parse CSS” ÌõÄ¿£¬¶øÊÇÔÚ “Recalculate Style” ÕâÒ»¸öʼþÏÂһͬ²¶»ñ½âÎö¡¢CSSOM Ê÷µÄ¹¹½¨¼°¼ÆËãµÄÑùʽµÄµÝ¹é¼ÆËã¡£
´¦ÀíÎÒÃǵÄСÑùʽ±íÐèÒª´óÔ¼ 0.6 ºÁÃ룬ӰÏìÍøÒ³É쵀 8 ¸öÔªËØ – ʱ¼ä²»¶à£¬µ«Ò²»á²úÉú³É±¾¡£Ö»²»¹ý£¬8 ¸öÔªËØ´ÓºÎ¶øÀ´ÄØ£¿CSSOM ºÍ DOM ÊǶÀÁ¢µÄÊý¾Ý½á¹¹¡£½á¹ûÖ¤Ã÷£¬ä¯ÀÀÆ÷Òþ²ØÁËÒ»¸öÖØÒª²½Öè¡£½ÓÏÂÀ´£¬ÈÃÎÒÃÇÁÄÁĽ« DOM Óë CSSOM Á´½ÓÔÚÒ»ÆðµÄäÖȾÊ÷¡£
¡¡