在我们编写网页的时候,样式表示我们常常需要相伴的内容,谁然很招人烦。恕我前端菜鸟对这东西很是无力啊。下面是我在代码浪潮中的虚席到的一些东西。

1、样式表内容修改方式。

2、当前元素样式内容获取。

3、document.styleSheets内容。

 

1.首先我们从最简单的开始,样式表修改。

  我们在编写网页的时候通常需要对元素进行一些显示样式内容的修改,这是我们其实是有许多种方法的。

  one: 改变元素style属性。 首先我们可以直接通过元素的elem.setAttribute("style", content);的方式,直接的修改当前的元素的style属性中的内容。style属性是所有的元素通用的属性,标示的是当前的元素显示样式的设置,而且优先级是最高的。所以通过直接修改Style中的内容将会是一种很直接有效的方式。

    Two:改变元素class属性。 其次我们可以使用的也是改变元素的属性值的方式,当时此次改变的是class属性的值,当我们在使用的样式表代码中预先编写好可能的元素的样式,然后通过改变class中的内容以达到改变当前的元素样式的需求。当然对于当前的方式来说,如果你同时改变了style中的样式的话,style种的内容将会优先显示。

  Three:使用element.style参数进行样式修改。 element.style获取的是当前元素style属性种最终显示的内容。其内容其实就是获取了style属性种的内容的一个集合。但是JS把它视为一个元素的属性,并且作为一项内容放置在element对象中。element.style读取获取的数据是CSS样式声明对象([object CSSStyleDeclaration])。但是它是可读写的。当我们使用这样的方法改变当前的元素样式的时候,我们可以通过element.style.backgroundImage这样的方式来设置想要改变的样式的内容。并且其达到的效果和第一条种的效果是相同的。

 

2.当前元素的样式信息的获取。

  我们有时需获取某医院苏的样式表的信息,并使用其中的信息进行计算或是判断。

  one:element.style。 在第一条第三项中我们提到过。这一属性返回的是一个CSS样式声明对象([object CSSStyleDeclaration]),但是是可读可写的。并且其中的内容是当前元素style中的内容。所以只有当我们需要使用的是style种的属性的话,我们使用这样的方式是可以很方便的一种方式。

  two:window.getComputerStyle。 我们可以通过使用window对象中的getComputerStyle来进行获取当前元素的最终显示的全部样式的集合。其方法种有两个参数,参数一是需要获取样式的元素对象,第二个参数是伪类,如果输入了这一参数,则返回的内容变成了相关元素的对应伪类的样式对象了。在jquery种我们可以使用CSS()方法来进行样式的内容获取。

document.defaultView.getComputedStyle //jquery中的css()方法的源代码啊

由上可见其使用的是document.defaultView这个属性指代的其实就是window对象。

在MDN中其对于这一使用的总结是:In browsers, document.defaultView returns the window object associated with a document, or null if none available. 翻译过来就是,在浏览器中,document.defaultView返回的是与文档有关联的window对象,或者是null如果没有可用的话。具体为什么有了window之后还要这样一个参数,完全不知道啊。一脸懵逼ing。

 

3.document.styleSheets内容介绍。

  对于document对象中会有另一个属性可以获取样式,即styleSheets属性。

  styleSheets属性返回的是styleSheetsList数组列表。并且这一属性只有document才有。一般的元素对象是没有的。MDN给出的定义是:

  The Document.styleSheets read-only property returns a StyleSheetList of CSSStyleSheet objects for stylesheets explicitly linked into or embedded in a document.而且在于chrome中显示的内容是:

由上图可见其中的每一个CSSStyleSheet对象都是一个使用link导入的CSS延时文件。

我们先来看一看CSSStyleSheet的相关内容吧。

由上图可以得出,其实CSSStyleSheet是继承了StyleSheet的,其中的主要的内容有:

cssRules属性,它是一个CSSRulesList数组,其中每一个元素都是CSSStyleRule对象。

由上图可见,其实CSSStyleRule对象中的cssText属性所存储的内容就是我们编写的CSS文件中的内容。实际上document.styleSheets传递回来的其实是一个当前页面的样式内容的集合。

存储了所有的样式的内容。

 

上面几点是我在平时的学习过程种所见和所想,如有错误的话望帮忙指出,那么就先到这里吧。十分感谢。

posted on 2016-07-29 13:26  平川心  阅读(492)  评论(0编辑  收藏  举报