zoukankan      html  css  js  c++  java
  • 12DOM2和DOM3

    12.1DOM变化

    针对XML命名空间的变化

    命名空间要使用xmlns特性来指定。在混合使用两种语言的情况下,命名空间的用处就非常大了。在DOM2级中,Node类型包含下列特定于命名空间的属性:localName、namespaceURL和prefix。Document类型包含了下列与命名空间有关的方法:createElementNS(namespaceURI,tagName)、createAttributeNSA(namespaceURIne,attributeName),getElementByTagNameNSA(namespaceURIne,tagName)。Element类型的变化。NameNodeMap类型的变化。

    其他方面的变化(这些变化与XML命名空间无关,而是更倾向于确保API的可靠性及完整性)

    DocumentType类型新增了3个属性:publicId、systemId和internalSubset。

    document.importNode()方法从一个文档中取得一个节点,然后将其导入到另一个文档,使其成为这个文档结构的一部分。document.impementation对象有两个新的方法createDocumentType()和createDocument(),前者用于创建一个新的DocumentType节点,接收三个参数:文档类型名称、publicId、systemId。

    Node类型的变化。isSupported()方法用于确定当前节点具有什么能力。isSameNode()指的是两个节点引用的是同一个对象。isEqualNode()指的是两个节点是相同的类型,具有相同的属性。

    框架的变化。框架和内嵌框架分别用HTMLFrameElement和HTMLFrameElement表示,新属性contentDocument包含一个指针,指向表示框架内容的文档对象。

    12.2样式

    HTML中定义样式的方式有3种:通过<link/>元素包含外部样式表文件、使用<style/>元素定义嵌入式样式,以及使用style特性定义针对特定元素的样式。

    访问元素的样式

    任何支持style特性的HTML元素在JavaScript中都有一个对应的style属性,在style特性中指定的任何CSS属性都将表现为这个style对象的相应属性。

    getComputedStyle()方法接受两个参数:要取得计算样式的元素和一个伪元素字符串。

    操作样式表

    CSS对象,CSSRule对象表示样式表汇总的每一条规则。

    insertRule()方法用于向现有样式表中添加新规则。deleteRule()方法用于从样式表中删除规则。

    元素大小

    偏移量:offsetHeight、offsetWidth、offsetLeft和offsetTop。

    客户区大小值得是元素内容及其内边距所占据的空间大小,clientHeight和clientWidth。客户区大小就是元素内部的空间大小,因此滚动条占用的空间不计算在内。

    滚动大小指的是包含滚动内容的元素的大小,4个与滚动大小相关的属性:scrollHeight、scrollWidth、scrollLeft和scrollTop。

    确定元素大小。getBoundaryClientRect()方法返回一个矩形对象,包含4个属性:left、top、right和bottom。

    12.3遍历

    NodeIterator

    可以使用document.createNodeIterator(root,whatToShow,filter,entityReferenceExpansion)方法创建它的新实例。NodeIterator()类型的两个主要方法是nextNode()和previousNode()。

    TreeWalker

    TreeWalker包含nextNode()、previousNode()、parentNode()、firstChild()、lastChild()、nextSibling()和previousSibling()。用document.createTreeWalker()方法创建TreeWalker对象,也接受4个参数:作为遍历起点的根节点、要显示的节点类型、过滤器和一个表示是否扩展实体引用的布尔值。

    12.4范围

    DOM中的范围

    可以使用createRange()来创建DOM范围。

    要使用范围来选择文档中一部分,最简的方式就是使用selectNode()或selectNodeContents(),selectNode()方法选择整个节点,包括其子节点,而selectNodeContents()方法则只选择节点的子节点。

    setStart()和setEnd()方法可以创建复杂的范围。deleteContents()能够从文档中删除范围所包含的内容。extractContents()方法会从文档中移除范围选区。cloneContents()创建范围对象的一个副本。insertNode()方法可以向范围选区的开始处插入一个节点。surroundContents()可以环绕范围插入内容。collapse()方法可以折叠范围,所谓折叠范围就是指范围中未选择文档的任何部分。compareBoundaryPoints()方法来确定多个范围是否有公共的边界(起点或终点)。cloneRange()方法可以复制范围。在使用完范围之后,最好是用detach()方法从创建范围的文档中分离出该范围。

    IE8及更早版本中的范围

  • 相关阅读:
    BZOJ3689: 异或之
    BZOJ3166: [Heoi2013]Alo
    BZOJ3261: 最大异或和
    BZOJ3123: [Sdoi2013]森林
    BZOJ4520: [Cqoi2016]K远点对
    BZOJ2989: 数列
    BZOJ1941: [Sdoi2010]Hide and Seek
    BZOJ4066: 简单题
    BZOJ2648: SJY摆棋子
    KDtree模板(HDU4347)
  • 原文地址:https://www.cnblogs.com/dingzibetter/p/6402214.html
Copyright © 2011-2022 走看看