dom的变化(样式)

 1 <!DOCTYPE html>
 2 <html>
 3 
 4     <head>
 5         <meta charset="UTF-8">
 6         <title>dom的变化(样式)</title>
 7         <style type="text/css">
 8             body{height: 2000px;}
 9             #myDiv {
10                 
11                 background-color: blue;
12                 width: 100px;
13                 height: 200px;
14             }
15         </style>
16     </head>
17 
18     <body>
19         <div id="myDiv" style="background-color: red; border: 1px solid black"></div> 
20     </body>
21     <script>
22         /*
23                  任何支持 style 特性的 HTML 元素在 JavaScript 中都有一个对应的 style 属性。这个 style 对象是 CSSStyleDeclaration 的实例,
24                  式。在 style 特性中指定的任何 CSS 属性都将表现为这个style 对象的相应属性。对于使用短划线(分隔不同的词汇,例如 background-image)的 CSS 属性名,
25                  必须将其转换成驼峰大小写形式,才能通过 JavaScript 来访问。(float除外,详见:dom高级程序设计:Page(313))
26                  在标准模式下,所有度量值都必须指定一个度量单位。在混杂模式下,可以将style.width 设置为"20",浏览器会假设它是"20px";
27                  
28                  * */
29         /*
30          “DOM2级样式”规范还为 style 对象定义了一些属性和方法。这些属性和方法在提供元素的 style特性值的同时,也可以修改样式。下面列出了这些属性和方法。
31  cssText:如前所述,通过它能够访问到 style 特性中的 CSS 代码。
32  length:应用给元素的 CSS 属性的数量。
33  parentRule:表示 CSS 信息的 CSSRule 对象。本节后面将讨论 CSSRule 类型。
34  getPropertyCSSValue(propertyName):返回包含给定属性值的 CSSValue 对象。
35  getPropertyPriority(propertyName):如果给定的属性使用了!important 设置,则返回
36 "important";否则,返回空字符串。
37  getPropertyValue(propertyName):返回给定属性的字符串值。
38  item(index):返回给定位置的 CSS 属性的名称。
39  removeProperty(propertyName):从样式中删除给定属性。
40  setProperty(propertyName,value,priority):将给定属性设置为相应的值,并加上优先
41 权标志("important"或者一个空字符串)。
42          * */
43         var myDiv = document.getElementById("myDiv");
44         var computedStyle = document.defaultView.getComputedStyle(myDiv, null);
45         console.log(computedStyle.backgroundColor); //rgb(255, 0, 0)
46         console.log(computedStyle.width); // "100px"
47         console.log(computedStyle.height); // "200px"
48         console.log(computedStyle.border); //1px solid rgb(0, 0, 0)[google的,不同浏览器不一样]
49         /*IE 不支持 getComputedStyle()方法,但它有一种类似的概念。在 IE 中,每个具有 style 属性的元素还有一个 currentStyle 属性。*/
50         /*
51          操作样式表:详见:高阶js[dom2和dom3]
52          * */
53         /*
54          元素大小
55           偏移量
56           offsetHeight:元素在垂直方向上占用的空间大小,以像素计。包括元素的高度、(可见的)水平滚动条的高度、上边框高度和下边框高度。
57  offsetWidth:元素在水平方向上占用的空间大小,以像素计。包括元素的宽度、(可见的)垂直滚动条的宽度、左边框宽度和右边框宽度。
58  offsetLeft:元素的左外边框至包含元素的左内边框之间的像素距离。
59  offsetTop:元素的上外边框至包含元素的上内边框之间的像素距离。
60 offsetLeft 和 offsetTop 属性与包含元素有关,包含元素的引用保存在 offsetParent
61 属性中。offsetParent 属性不一定与 parentNode 的值相等。例如,<td>元素的 offsetParent 是
62 作为其祖先元素的<table>元素,因为<table>是在 DOM 层次中距<td>最近的一个具有大小的元素。
63 所有这些偏移量属性都是只读的,而且每次访问它们都需要重新计算。因此,应该尽量避免重复访问这些属性;如果需要重复使用其中某些属性的值,可以将它们保存在局部变量中,以提高性能。
64          
65          客户区大小
66  元素的客户区大小(client dimension),指的是元素内容及其内边距所占据的空间大小。有关客户区
67 大小的属性有两个:clientWidth 和 clientHeight。
68 
69 3. 滚动大小
70 scrollHeight:在没有滚动条的情况下,元素内容的总高度。
71  scrollWidth:在没有滚动条的情况下,元素内容的总宽度。
72  scrollLeft:被隐藏在内容区域左侧的像素数。通过设置这个属性可以改变元素的滚动位置。
73  scrollTop:被隐藏在内容区域上方的像素数。通过设置这个属性可以改变元素的滚动位置。
74 
75 4. 确定元素大小
76 IE、Firefox 3+、Safari 4+、Opera 9.5及 Chrome为每个元素都提供了一个 getBoundingClientRect()方法。
77 这个方法返回会一个矩形对象,包含 4 个属性:left、top、right 和 bottom。这些属性给出了元素在页面中相对于视口的位置。
78          * */
79         var sh= document.documentElement.scrollHeight;
80         var sw= document.documentElement.scrollWidth;
81         var ch= document.documentElement.clientHeight;
82         var cw= document.documentElement.clientWidth;
83         console.log(sh);
84         console.log(sw);
85         console.log(ch);
86         console.log(cw);
87     </script>
88 
89 </html>

 

posted @ 2017-11-09 15:46  gaoxuerong  阅读(285)  评论(0编辑  收藏  举报