1训柴、DOM結(jié)構(gòu)——兩個節(jié)點之間可能存在哪些關系以及如何在節(jié)點之間任意移動嘱支。
document.documentElement 返回文檔的根節(jié)點
document.body
document.activeElement 返回當前文檔中被擊活的標簽節(jié)點(ie)
event.fromElement 返回鼠標移出的源節(jié)點(ie)
event.toElement 返回鼠標移入的源節(jié)點(ie)
event.srcElement 返回激活事件的源節(jié)點(ie)
event.target 返回激活事件的源節(jié)點(firefox)
當前對象為node
返回父節(jié)點:node.parentNode, node.parendElement,
返回所有子節(jié)點:node.childNodes(包含文本節(jié)點及標簽節(jié)點),node.children
返回第一個子節(jié)點:node.firstChild
返回最后一個子節(jié)點: node.lastChild
返回同屬上一個子節(jié)點:node.nextSibling
返回同屬下一個子節(jié)點:node.previousSibling
parentNode和parentElement功能一樣,childNodes和children功能一樣摹量。但是parentNode和childNodes是符合W3C標準的勃痴,可以說比較通用。而另外兩個只是IE支持洗搂,不是標準消返,F(xiàn)irefox就不支持 ,所以大家只要記得有parentElement和children就行了
2、DOM操作——怎樣添加耘拇、移除撵颊、移動、復制惫叛、創(chuàng)建和查找節(jié)點倡勇。
(1)創(chuàng)建新節(jié)點
createDocumentFragment() //創(chuàng)建一個DOM片段
createElement() //創(chuàng)建一個具體的元素
createTextNode() //創(chuàng)建一個文本節(jié)點
(2)添加、移除嘉涌、替換妻熊、插入
appendChild()
removeChild()
replaceChild()
insertBefore()
(3)查找
getElementsByTagName() //通過標簽名稱
getElementsByName() //通過元素的Name屬性的值
getElementById() //通過元素Id,唯一性
3仑最、事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別扔役。
(1)冒泡型事件:事件按照從最特定的事件目標到最不特定的事件目標(document對象)的順序觸發(fā)。
IE 5.5: div -< body -< document
IE 6.0: div -< body -< html -< document
Mozilla 1.0: div -< body -< html -< document -< window
(2)捕獲型事件(event capturing):事件從最不精確的對象(document 對象)開始觸發(fā)警医,然后到最精確(也可以在窗口級別捕獲事件亿胸,不過必須由開發(fā)人員特別指定)。
(3)DOM事件流:同時支持兩種事件模型:捕獲型事件和冒泡型事件预皇,但是侈玄,捕獲型事件先發(fā)生。兩種事件流會觸及DOM中的所有對象深啤,從document對象開始拗馒,也在document對象結(jié)束。
DOM事件模型最獨特的性質(zhì)是溯街,文本節(jié)點也觸發(fā)事件(在IE中不會)诱桂。
4洋丐、XMLHttpRequest——這是什么、怎樣完整地執(zhí)行一次GET請求挥等、怎樣檢測錯誤友绝。
XMLHttpRequest 對象提供了在網(wǎng)頁加載后與服務器進行通信的方法。
5肝劲、嚴格模式與混雜模式——如何觸發(fā)這兩種模式迁客,區(qū)分它們有何意義。
在標準模式中辞槐,瀏覽器根據(jù)規(guī)范呈現(xiàn)頁面掷漱;
在混雜模式中,頁面以一種比較寬松的向后兼容的方式顯示榄檬。
瀏覽器根據(jù)DOCTYPE是否存在以及使用的哪種DTD來選擇要使用的呈現(xiàn)方法卜范。如果XHTML文檔包含形式完整的DOCTYPE,那么它一般以標準模式呈現(xiàn)鹿榜。對于HTML 4.01文檔海雪,包含嚴格DTD的DOCTYPE常常導致頁面以標準模式呈現(xiàn)。包含過渡DTD和URI的DOCTYPE也導致頁面以標準模式呈現(xiàn)舱殿,但是有過渡DTD而沒有URI會導致頁面以混雜模式呈現(xiàn)奥裸。DOCTYPE不存在或形式不正確會導致HTML和XHTML文檔以混雜模式呈現(xiàn)。
6沪袭、盒模型——外邊距湾宙、內(nèi)邊距和邊框之間的關系,IE 8以下版本的瀏覽器中的盒模型有什么不同枝恋。
一個元素盒模型的層次從內(nèi)到外分別為:內(nèi)邊距创倔、邊框和外邊距
IE8以下瀏覽器的盒模型中定義的元素的寬高不包括內(nèi)邊距和邊框
7、塊級元素與行內(nèi)元素——怎么用CSS控制它們焚碌、它們怎樣影響周圍的元素以及你覺得應該如何定義它們的樣式畦攘。
塊級元素,用CSS中的display:inline;屬性則變?yōu)樾袃?nèi)元素
行內(nèi)元素十电,用CSS中的display:block;屬性則變?yōu)閴K級元素
影響:周圍元素顯示在同一行或換行顯示知押,根據(jù)具體情況調(diào)整樣式
8、浮動元素——怎么使用它們鹃骂、它們有什么問題以及怎么解決這些問題台盯。
需要浮動的元素可使用CSS中float屬性來定義元素的浮動位置,left:往左浮動畏线,right:往右浮動
浮動元素引起的問題:
(1)父元素的高度無法被撐開静盅,影響與父元素同級的元素
(2)與浮動元素同級的非浮動元素會跟隨其后
(3)若非第一個元素浮動,則該元素之前的元素也需要浮動寝殴,否則會影響頁面顯示的結(jié)構(gòu)
解決方法:
使用CSS中的clear:both;屬性來清除元素的浮動可解決2蒿叠、3問題明垢,對于問題1,添加如下樣式市咽,給父元素添加clearfix樣式:
.clearfix:after{content: ".";display: block;height: 0;clear: both;visibility: hidden;}
.clearfix{display: inline-block;} /* for IE/Mac */
9痊银、HTML與XHTML——二者有什么區(qū)別,你覺得應該使用哪一個并說出理由施绎。
主要區(qū)別:
XHTML 元素必須被正確地嵌套
XHTML 元素必須被關閉溯革,空標簽也必須被關閉,如
必須寫成
XHTML 標簽名必須用小寫字母
XHTML 文檔必須擁有根元素
XHTML 文檔要求給所有屬性賦一個值
XHTML 要求所有的屬性必須用引號""括起來
XHTML 文檔需要把所有 < >谷醉、& 等特殊符號用編碼表示
XHTML 文檔不要在注釋內(nèi)容中使“--”
XHTML 圖片必須有說明文字
XHTML 文檔中用id屬性代替name屬性
詳細了解:
HTML與XHTML的區(qū)別
10致稀、JSON——它是什么、為什么應該使用它俱尼、到底該怎么使用它豺裆,說出實現(xiàn)細節(jié)來。
JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式号显。易于人閱讀和編寫。同時也易于機器解析和生成躺酒。
JSON建構(gòu)于兩種結(jié)構(gòu):
“名稱/值”對的集合(A collection of name/value pairs)押蚤。不同的語言中,它被理解為對象(object)羹应,紀錄(record)揽碘,結(jié)構(gòu)(struct),字典(dictionary)园匹,哈希表(hash table)雳刺,有鍵列表(keyed list),或者關聯(lián)數(shù)組 (associative array)裸违。
值的有序列表(An ordered list of values)掖桦。在大部分語言中,它被理解為數(shù)組(array)供汛。