一、总体概述

1.1,什么是DOM

DOM(Document Object Model):D(文档):整个web加载的网页文档;O(对象):类似于window对象之类的东西,可以调用属性和方法,在这里特指document对象;M(模型):网页文档的树型结构(节点树)。

所以:W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。更多了解

1.2,节点树(M)



















说明:从这个树型结构可以看出,DOM主要是对HTML的内部内容和结构进行一系列操作。

1.3,总体概况

说明:因为DOM是对文档内容、样式和结构的操作,所以,总结说来,DOM操作,是对各个节点的一系列操作。而,要想操作这些节点,那么就得找到相对应的节点,所以,我认为DOM操作的基础就是查找节点,然后就是节点操作。节点操作可以包括有:增添,移除,替换等,还包括其对于节点内部的操作,这里也就是进一步的操作,比如说对于节点内文本的操作等。最后还有一点,就是可以设置获取文档的尺寸和位置,这些,我认为都是一些样式的操作了。

二、细节探究

DOM在处理元素尺寸和位置的时候,有三个不同的方式:CSS大小、实际大小、周边大小。

2.1,CSS大小

首先:通过style获取到的是已设置的大小。如<div id="box" style="background:red;width:200px;height:200px;">测试Div</div>,获取到的就是200px,200px。

其次:获取计算后的大小,则是获取link和style标签里设置的大小。

最后:通过CSSRules获取大小,则是获取在CSS样式表中设置的大小。

注:这三种方法,都无法获取实际大小。

2.2,实际大小

在获取实际大小时,分为增添样式,添加滚动条,可视区大小。这三个方式的理解方式不同,如下:

三、BOM和DOM

总体说来,BOM和DOM是一种包含和被包含的关系。BOM是浏览器对象模型,DOM是文档对象模型。他们之间的关系,可以用下图表示:

BOM的主要对象是window对象,DOM则是在window对象下document对象下继承而来的。而根据自己的理解,BOM和DOM的关系,就好像了高楼的设计图,和房间的设计图一样。BOM主要着手的是整个浏览器页面,也就是window对象的操作,而DOM则主要着手的是在这个window页面里面的东西的一系列操作。

四、个人感受

又是一个知识点的总结,有时候真的感觉做这样的事儿很无聊,但每次总结完,又有一种充实的感觉。这也大概就是总结的力量吧!

【JavaScript 8—基础知识点】:DOM的更多相关文章

  1. JavaScript语言基础知识点图示(转)

    一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运算符 4.JavaScript 数组 5.Ja ...

  2. JavaScript语言基础知识点图示

    原文:JavaScript语言基础知识点图示 一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运 ...

  3. JavaScript 语言基础知识点总结

    网上找到的一份JavaScript 语言基础知识点总结,还不错,挺全面的. (来自:http://t.cn/zjbXMmi @刘巍峰 分享 )  

  4. JavaScript 语言基础知识点总结(思维导图)

    JavaScript 数组 JavaScript 函数基础 Javascript 运算符 JavaScript 流程控制 JavaScript 正则表达式 JavaScript 字符串函数 JavaS ...

  5. 一套最全的JavaScript 语言基础知识点总结(思维导图10张)

    1.DOM基础操作 2.数组基础 3.函数基础 4.运算符 5.流程控制语句 6.正则表达式 7.字符串函数 8.数据类型 9.变量 10.window对象

  6. 【JavaScript 7—基础知识点】:BOM

    一.基础知识 1.1,什么是BOM BOM(browser object model):也叫浏览器对象模型,它提供了很多对象,用于访问浏览器的功能.BOM缺少规范,每个浏览器提供商又按照自己想法去扩展 ...

  7. 【JavaScript 4—基础知识点】:函数

    导读:函数这个东西,从VB开始就一直在用,不过那时候一般写不出来自己的函数或者类,觉得最高大上的,就是调用API函数了.现在,学习到了JavaScript,总结总结函数,显得很有必要.这篇文章,就从最 ...

  8. 【JavaScript 1—基础知识点】:宏观概述

    导读:JavaScript是一门新的(也可以说是旧的或者半新语言),里面有很多的知识点都能和已有的知识产生共鸣.但是,虽然简单,相同点也有很多,也有不同点.我脑袋也不好使,所以对于我来说,还是有必要再 ...

  9. javascript的基础知识点

    一:鼠标提示框 需求描述:鼠标移入都input上,div显示,移出,div消失 分析:控制display=block/none 鼠标移入,鼠标移出事件  <input type="bu ...

随机推荐

  1. AJPFX关于VIM的常用快捷键

    Ajax技术的核心是XMLHttpRequest对象(简称XHR),var xhr = new XMLHttpRequest();function createXHR(){if (typeof XML ...

  2. 降低PNG图片存储大小方法、图片压缩方法

    降低PNG图片存储大小方法,图片压缩方法,如何降低PNG图片存储大小?前提是分辨率和尺寸大小不变,图形的透明部分不变.请看如下办法,亲测可用. 1. 将PNG图片用PS打开. 2. 图像-模式-8位/ ...

  3. Sencha Touch和jQuery Mobile的比较

    第一组-行销和平台支持 Sencha Touch和jQuery Mobile都以HTML5框架著称.jQuery Mobile谦虚的说自己只是内建于所有流行的移动设备平台,而Sencha Touch则 ...

  4. 非常实用的Linux 系统监控工具

    随着互联网行业的不断发展,各种监控工具多得不可胜数.这里列出网上最全的监控工具.让你可以拥有超过80种方式来管理你的机器.在本文中,我们主要包括以下方面: 命令行工具 网络相关内容 系统相关的监控工具 ...

  5. iOS的设计备忘录/资源集合(新手快速开发)

    iOS的设计备忘录 随着iOS7更新,风格走上扁平化,大部分iOS设计师及程序员都需要对自己的软件做相关调整,尺寸.Icon.UI等等,我在这里总结一下相关资料,以及提供一些关于iOS7设计素材. 一 ...

  6. @ConditionalOnProperty来控制Configuration是否生效

    1. 简介 Spring Boot通过@ConditionalOnProperty来控制Configuration是否生效 2. 说明 @Retention(RetentionPolicy.RUNTI ...

  7. this+call、apply、bind的区别与使用

    http://www.ruanyifeng.com/blog/2018/06/javascript-this.html https://segmentfault.com/a/1190000018017 ...

  8. NASM 之 helloworld1

    SECTION .data msg: db "Hello World!", 0x0a len: equ $-msg SECTION .text global _main kerne ...

  9. CAD命令标志

    CAD命令标志 主标识:(常用的)ACRX_CMD_MODAL 在别的命令执行的时候该命令不会在其中执行.ACRX_CMD_TRANSPARENT 命令可以再其它命令中执行,但在该标志下ads_sss ...

  10. python基础一 day11 装饰器(1)

    接收的时候是聚合,调用的时候是打散     print(*args)本来在里面用的时候是用args,是一个元祖,加上一个 * 号,把元祖解包了(打散了). from functools import ...