最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Javascript访问样式表实现代码_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:44:05
文档

Javascript访问样式表实现代码_javascript技巧

Javascript访问样式表实现代码_javascript技巧:再记录一下 Javascript访问样式表 Javascript可以访问网页中元素的style属性,例如: 通过js访问style属性 alert(document.getElementById(main).style.backgroundColor); 通过js改变style属性 document.getElementB
推荐度:
导读Javascript访问样式表实现代码_javascript技巧:再记录一下 Javascript访问样式表 Javascript可以访问网页中元素的style属性,例如: 通过js访问style属性 alert(document.getElementById(main).style.backgroundColor); 通过js改变style属性 document.getElementB
 再记录一下 Javascript访问样式表
Javascript可以访问网页中元素的style属性,例如:

通过js访问style属性
alert(document.getElementById("main").style.backgroundColor);

通过js改变style属性
document.getElementById("main").style.backgroundColor="blue";

以上代码是我们所熟悉的,但通常我们用样式表来控制元素的外观属性,例如:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

此时如果我们再使用 alert(document.getElementById("main").style.backgroundColor);

则只能获得一个空值,所以只能通过js去访问样式表了.
document.styleSheets可以获得样式表的集合,因为浏览器之间有很大不同,访问样式表的单独规则也不同.DOM为每一个样式表指定一个cssRules集合,Mozilla和Safari正确实现了这个标准,不过可惜IE中定义这个集合为rules,因此可以使用以下代码来获得正确的对象:
var oCssRules=document.styleSheets[0].cssRules||document.styleSheets[0].rules;

这样就可以获得不同浏览器的CSS集合了.
通过以下JS代码来获得样式表中的样式:
代码如下:
function GetCSS()
{
var oCssRules=document.styleSheets[0].cssRules||document.styleSheets[0].rules;
alert(oCssRules[0].style.backgroundColor);
}

styleSheets[0]表示第一个样式表引用,oCssRules[0]表示第一个样式规则(即#main{}的内容),通过style属性来访问具体的规则.
同理,更改该样式表规则代码如下:


代码如下:
function SetCSS()
{
var oCssRules=document.styleSheets[0].cssRules||document.styleSheets[0].rules;
oCssRules[0].style.backgroundColor="red";
oCssRules[0].style.marginLeft="20px";
oCssRules[0].style.marginTop="20px";
}

但是需要注意的是,因为很多元素有可能关联同一个样式表,所以改变时需要慎重.
除了元素的style对象和css规则外,每个元素还有一个最终样式,最终样式用来告诉我们元素最后是如何显示在屏幕上的,也就是style和css重合计算后的样式.IE和DOM有两种方式来访问此样式,IE中通过currentStyle属性,DOM中使用getComputedStyle()方法.
JS获得最终样式的方法如下:
代码如下:
function GetFinalCSS()
{
var oDiv=document.getElementById("main");
//访问style属性
alert(oDiv.style.backgroundColor);
//IE方法
alert(oDiv.currentStyle.backgroundColor);
//DOM方法,第二个参数为伪元素,如:hover,first-leeter之类
//alert(document.defaultView.getComputeStyle(oDiv,null).backgroundColor);
}

我经常使用currentStyle来获得样式,省去了访问样式表的麻烦
需要注意的是currentStyle是只读属性,不能够对其赋值,因为其是多种样式综合计算后的样式规则,这点并不难理解.
对于getComputedStyle方法,可以通过document.defaultView来调用(IE和Safari不支持此方法).所以,当使用getComputedStyle方法时,最好在多个浏览器上进行测试.

文档

Javascript访问样式表实现代码_javascript技巧

Javascript访问样式表实现代码_javascript技巧:再记录一下 Javascript访问样式表 Javascript可以访问网页中元素的style属性,例如: 通过js访问style属性 alert(document.getElementById(main).style.backgroundColor); 通过js改变style属性 document.getElementB
推荐度:
标签: 实现 js 代码
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top