动态样式

js可以动态的向html页面中添加样式

 动态样式必须添加在head标签当中才能被正确的解析和执行

一 动态添加内部和外部样式

1 添加外部样式

var link=document.createElement("link");

link.type="type/css"

link.rel="stylesheet"

link.href="a.css"

document.head.appendChild(link)

2 添加内部样式(非IE)

var style=document.createElement("style");

style.text="text/css";

style.appendChild(document.createTextNode("body:{background-color:red;}");//直接向style中写内容

document.appendChild(style);

3 添加内部样式(IE)

var style=document.createElement("style");

style.text="text/css";

style.styleSheet.cssText="body:{background-color:red;}";//直接向style中写内容

document.appendChild(style);

4 兼容所有浏览器的写法

var code="body:{background-color:red;}";

var style=document.createElement("style");

style.text="text/css";

try

{

style.appendChild(document.createTextNode(code);

}

catch(ex)

{

style.styleSheet.cssText=code;

}

二 利用元素的style属性动态添加內联样式

利用元素的style属性操作样式,只能操作元素内部通过style表现的內联样式,不能操作外部样式和内部样式

如果元素通过类或者id引入了样式,元素的style属性也不会对他们进行操作,如果style属性中引入了和外部或者内部样式中相同的特性

那么会覆盖中的那些

如果css中为background-color 到js中就要写成backgroundColor 一律将-改为驼峰式

<div style="width:200px" class=“wid”></div>

1 odiv.style.width

 获得width属性,同时也可以为其赋值修改width的值

如果在外部活着内部样式表中设置了div的width值,活着wid类中设置的div的width值,那么新写入的值将会把之前的覆盖

因为內联样式的优先级最高

2 odiv.style.length

得到style属性中特性的个数,这里为1

3odiv.style.item(i) odiv.style[i]

获得第i个特性的名称 这里odiv.style[0]为width

4odiv.style.cssText

获得style中的所有内容,这里为width:200px

4 odiv.style.getPropertyValue("width")

获得某一个特性的值,这里为200px

5 odiv.style.removeProperty("width")

将某个特性移除

三 动态修改外部内部样式表

<style>

div.box{width:200px}

.name {length:100px}

</style>

这个介绍的是动态的修改<link>标签或则会<style>标签中的样式表

var a=document.stylesheet;//获取所有link标签和style标签的样式表

var b=a[0];//获取第一个link或者style标签

var c=b.cssRules/var c=b.rules //获取标签内部的css的具体内容

var d=c[0] //获取第一个样式,这里为div.box{width:200px}

然后就可以获取或者修改属性值

d.style.width=20px; 取得具特的特性值

d.selectortext  对应的是选择器的名称,这里为div.box 可以取值或者修改

d.style.cssText 对应的是选择器中的具体内容,这里为{width:200px},同样可以取到这个值,也可以对它进行整体的修改

同样 如果css中为background-color 到js中就要写成backgroundColor 一律将-改为驼峰式

 

posted @ 2016-09-21 11:43  shenlong77  阅读(229)  评论(0编辑  收藏  举报