* DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
****document.document.Element 返回文档的根节点<html>*****(IE)
****document.body 返回到文档的body节点*****(IE)
****document.activeElement 返回到文档当前被激活的标签节点*****(IE)
****event.formElement 返回鼠标移除的源节点*****(IE)
****event.toElement 返回鼠标移入的源节点*****(IE)
****event.srcElement 返回鼠标激活的源节点*****(IE)
****event.target 返回鼠标激活的源节点*****(firefox)
当前对象为node
返回父节点:node.parentNode , node.parentElement
返回所有子节点:node.childNodes , node.children
返回第一个子节点:node.firstChild
返回最后一个子节点:node.lastChild
返回同属上一个子节点:node.nextSibling
返回同属下一个子节点:node.previousSiling
* DOM操作——怎样添加、移除、移动、复制、创建和查找节点。
(1)创建新节点:
· createDocumentFragment(): 创建文档碎片节点
· createElement(tagname): 创建标签名为tagname的节点
· createTextNode(text): 创建包含文本text的文本节点
(2)添加,移除,插入,替换
appendChild()
removeChild()
replaceChild()
insertBefore()
(3)查找
getElementsByTagName() //通过标签名称
getElementsByName() //通过元素的Name属性的值
getElementById() //通过元素Id,唯一性
* 事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。
(1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。
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 对象)开始触发,然后到最精确(也可以在窗口级别捕获事件,不过必须由开发人员特别指定)。
(3)DOM事件流:同时支持两种事件模型:捕获型事件和冒泡型事件,但是,捕获型事件先发生。两种事件流会触及DOM中的所有对象,从document对象开始,也在document对象结束。
DOM事件模型最独特的性质是,文本节点也触发事件(在IE中不会)。
* 严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。
* 盒模型——外边距、内边距和边框之间的关系,IE < 8中的盒模型有什么不同。
//一个元素盒模型的层次为内边距,边框,外边距,IE<8中的盒模型的宽高不包括内边距和边框
* 浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
浮动元素引起的问题:
(1)父元素的高度无法被撑开,影响与父元素同级的元素
(2)与浮动元素同级的非浮动元素会跟随其后
(3)若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构
解决方法:
使用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 */
* HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。
XHTML 元素必须被正确地嵌套
XHTML 元素必须被关闭,空标签也必须被关闭,如 <br> 必须写成 <br />
XHTML 标签名必须用小写字母
XHTML 文档必须拥有根元素
XHTML 文档要求给所有属性赋一个值
XHTML 要求所有的属性必须用引号""括起来
XHTML 文档需要把所有 < 、>、& 等特殊符号用编码表示
XHTML 文档不要在注释内容中使“--”
XHTML 图片必须有说明文字
XHTML 文档中用id属性代替name属性
* JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。
JSON建构于两种结构:
“名称/值”对的集合(A collection of name/value pairs)。
不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table)
有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。