?用JS代碼求出頁面上一個(gè)元素的最終的background-color,不考慮IE瀏覽器,不考慮元素float情況。
二、題目解析
?1.考察底層JavaScript基礎(chǔ)
?前端開發(fā),日常最常接觸的就是頁面樣式的編寫。而擺脫jQuery等工具庫,用原生js獲取樣式,是每個(gè)前端程序猿進(jìn)階階段必須掌握的技能。
?2.考察面試者的思維縝密程度和開發(fā)經(jīng)驗(yàn)
?如果認(rèn)為單單求元素計(jì)算后的樣式,就有點(diǎn)too young了。頁面的樣式的復(fù)雜,永遠(yuǎn)是最虐心的。就算前端有多牛逼,一聽到兼容IE6,論誰都會(huì)心塞??。所以還要考慮特殊的情況:display,opacity,visibility
的取值。
三、理論基礎(chǔ)
?1. 內(nèi)聯(lián)樣式
?內(nèi)聯(lián)樣式可以通過元素的style屬性獲取,如果style屬性有background-color值,則可以直接獲取出來 (暫不考慮!important) 。
?2. 外聯(lián)的層疊樣式
?DOM2樣式規(guī)范在document.defaultView
中包含了一個(gè)getComputedStyle()
方法。該方法返回一個(gè)只讀的CSSStyleDeclaration對(duì)象,其中包含特定元素的所有計(jì)算樣式。
四、解題
4.1 將所有工具方法封裝在WDS(wall dom script)命名空間中
(function(WDS,&