DOM:document object model,文档对象模型,它主要由一些节点构成。而基于JS中一切皆对象的角度来看,DOM的核心也就是这些节点对象的属性和操作它们的方法。在视频中主要从以下三方面来介绍DOM。
这部分表面看起来有些碎,但细细挖掘还是有很大规律可循的。见导图:
对于这部分的内容,涉及到的也是CSS样式的获取和操作。
获取:
1.行内:
var box=document.getElementById('box'); alert(box.style.width);2.rule获取
var sheet=document.styleSheets[0]; var rule=(sheet.cssRules|| sheet.rules)[0]; alert(rule.style.width);3.计算获取
var style = window.getComputedStyle ? window.getComputedStyle(box, null) : null || box.currentStyle;//考虑各浏览器兼容 style.width; style.height
1.插入
functioninsertRule(sheet,selectorText,cssText,position){ if(sheet.insertRule){ sheet.insertRule(selectorText+'{'+cssText+'}',position); }else if(sheet.addRule){ sheet.addRule(selectorText,cssText,position); }2.删除
function deleteRule(sheet,position){
if (sheet.deleteRule){ //如果这种方式存在 sheet.deleteRule(position); //非IE }else if(sheet.removeRule){ sheet.removeRule(position); }3.修改:通过赋值,来修改CSS样式
window.onload=function(){ //跨浏览器兼容rules var sheet=document.styleSheets[0]; var rules=sheet.cssRules || sheet.rules; var rule1=rules[0]; rule1.style.color='green'; //这种可以在链接CSS样式中修改具体的属性 var box=document.getElementById('box'); box.style.color='blue'; //这种方法修改的是行内样式 }
通过上述CSS样式的方式,我们也是可以获取DOM中各个元素的尺寸和位置的,但有一个弊端:当元素中存在pading,margin这些样式设计时,这些方法便不能获得一些元素真正的大小和位置。JS中提供了专门儿用于获取元素尺寸和大小的方法。
实际大小:针对于元素的实际大小,主要与四个因素有关,padding,margin,border,scroll,而下面提供的几种方法,针对于不同的因素,会有不同的结果,仅根据需求使用即可
周边大小:
小结:DOM是JS学习的一个核心内容,其中涉及到的元素节点的属性和基本操作也是前台页面中最重要的组成,通过这些,才能使JS中基于对象的思想发挥作用。可以说,B/S UI页面中的一切都是建立在这些元素的基础之上的。
原文地址:http://blog.csdn.net/wangyy130/article/details/40513629