We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DOM 和 CSSOM 同属 浏览器 api。
DOM:文档对象模型, 浏览器解析 HTML 之后得到结果。
DOM 的树形结构所有的节点有统一的接口 Node。 节点的类型:
https://developer.mozilla.org/zh-CN/docs/Web/API/Node/nodeType
DocumentFragment 非常有用,它常常被用来高性能地批量添加节点
Node 是 DOM 树继承关系的根节点
Node 提供了一组属性,来表示它在 DOM 树中的关系:
Node 中也提供了操作 DOM 树的 API:
注意:一个元素只能属于一个父节点,假如插入同一个节点在两个不同位置,其实是一个移动的操作;另外 选出来的 collection 是一个 live collection,
<ul id="wrap"> <li>1</li> <li>2</li> <li>3</li> </ul> <ul id="wrap1"></ul> <script> const wrap = document.getElementById('wrap'); const lists = wrap.getElementsByTagName('li'); // 3 console.log(lists.length) const wrap1 = document.getElementById('wrap1'); wrap1.appendChild(lists[0]) // 2 console.log(lists.length) </script>
另外, 除此之外,Node 还提供了一些高级 API:
DOM 标准规定了节点必须从文档的 create 方法创建出来,不能够使用原生的 JavaScript 的 new 运算。于是 document 对象有这些方法。 createElement createTextNode createDocumentType ...
querySelector getElementById ...
一个树的遍历,迭代或者递归。
更精确的控制节点操作,常见类似富文本编辑类业务。
正如 HTML 和 CSS 分别承担了语义和表现的分工,DOM 和 CSSOM 也有语义和表现的分工: DOM 中的所有的属性都是用来表现语义的属性,CSSOM 的则都是表现的属性。
先获取文档中所有的样式表:
document.styleSheets
修改样式表中的内容:
document.styleSheets[0].insertRule("p { color:pink; }", 0) document.styleSheets[0].removeRule(0)
取到特定的规则:
document.styleSheets[0].cssRules[1].styleMap.get('color').toString()
获取一个元素最终经过 CSS 计算得到的属性:
window.getComputedStyle(elt, pseudoElt);
其中第一个参数就是我们要获取属性的元素,第二个参数是可选的,用于选择伪元素。
CSSOM View 这一部分的 API,可以视为 DOM API 的扩展,它在原本的 Element 接口上,添加了显示相关的功能,这些功能,又可以分成三个部分:窗口部分,滚动部分和布局部分
窗口 API 用于操作浏览器窗口的位置、尺寸等。
let child = window.open("about:blank", "_blank" ,"width=100,height=100,left=100,right=100" )
The text was updated successfully, but these errors were encountered:
No branches or pull requests
DOM 和 CSSOM 同属 浏览器 api。
DOM:文档对象模型, 浏览器解析 HTML 之后得到结果。
DOM API
节点
DOM 的树形结构所有的节点有统一的接口 Node。
节点的类型:
https://developer.mozilla.org/zh-CN/docs/Web/API/Node/nodeType
DocumentFragment 非常有用,它常常被用来高性能地批量添加节点
Node
Node 是 DOM 树继承关系的根节点
Node 提供了一组属性,来表示它在 DOM 树中的关系:
Node 中也提供了操作 DOM 树的 API:
注意:一个元素只能属于一个父节点,假如插入同一个节点在两个不同位置,其实是一个移动的操作;另外 选出来的 collection 是一个 live collection,
另外,
除此之外,Node 还提供了一些高级 API:
DOM 标准规定了节点必须从文档的 create 方法创建出来,不能够使用原生的 JavaScript 的 new 运算。于是 document 对象有这些方法。
createElement
createTextNode
createDocumentType
...
Element 与 Attribute
查找元素
querySelector
getElementById
...
遍历
一个树的遍历,迭代或者递归。
Range
更精确的控制节点操作,常见类似富文本编辑类业务。
CSSOM
正如 HTML 和 CSS 分别承担了语义和表现的分工,DOM 和 CSSOM 也有语义和表现的分工:
DOM 中的所有的属性都是用来表现语义的属性,CSSOM 的则都是表现的属性。
CSSOM结构相关
先获取文档中所有的样式表:
修改样式表中的内容:
取到特定的规则:
获取一个元素最终经过 CSS 计算得到的属性:
其中第一个参数就是我们要获取属性的元素,第二个参数是可选的,用于选择伪元素。
CSSOM View
CSSOM View 这一部分的 API,可以视为 DOM API 的扩展,它在原本的 Element 接口上,添加了显示相关的功能,这些功能,又可以分成三个部分:窗口部分,滚动部分和布局部分
窗口部分
窗口 API 用于操作浏览器窗口的位置、尺寸等。
此外,窗口 API 还规定了 window.open() 的第三个参数。
滚动
viewport 滚动由 window 上一组api控制
Element 由 元素自身决定
布局
全局尺寸信息
元素的布局信息
The text was updated successfully, but these errors were encountered: