表示所有css样式表,包括外部link
和嵌入style
的;通过document.styleSheets
属性可以获得文档中CSSStyleSheet对象的列表;其中每个CSSStyleSheet都具有以下属性:
每个CSSStyleSheet对象内部包含着一组CSSStyleRule对象 document.styleSheets[0].cssRule
, 每个对象 document.styleSheets[0].cssRule[0]
有如下属性:
这是用的最多的对象,表示一个元素的style属性(内嵌在元素中的值) A.$('a').style
注意通过此属性只能访问到在元素的style属性中以嵌入方式声明的css属性,无法访问层叠样式表或从父类继承的属性
style引用的是HTMLElement对象的style属性,本身是CSSStyleDeclaration对象;一般使用第一种并兼容第二种
className引用的是HTMLElement对象的class属性,兼容性考虑一般用第二种方法
常用属性
* type
* href
* media
* rel, 表示样式表于文档之间的关系
* 设置'stylesheet' 指定一个样式表立即应用到文档
* 设置'alternate stylesheet' 将其作为备用样式表;浏览器载入该样式表时会将其disbaled设置为true;
* disabled, 表示样式表是否起作用
* title, 标题,也在脚本中用到;
通过js操作disabled值改变样式
先用设置公用样式,然后分别设置body.a;body.b等及下面的元素样式;最后通过改变body的classname来改变样式
直接通过js删减样式表
DOM2样式规范在document.defaultView中包含了一个getComputedStyle()方法;返回一个只读的CSSStyleDeclaration对象
var elemet = A.$('example');
var styles = document.defaultVIew.getComputedStyle(element);
var color = styles.getProperty('background-color');
function fadeColor(from ,to ,callback , duration, framesPerSecond) {
function doTimeout(color, frame) {
setTimeout(function() {
try{
callback(color);
} catch(e) {
A.log.write(e);
}
}, (duration * 1000 / framesPerSecond) * frame );
}
var duration = duration || 1;
var framesPerSecond = framesPerSecond || duration * 15;
var r, g ,b;
var frame = 1;
doTimeout('rgb(' + from.r + ',' + from.g + ',' + from.b + ')', 0);
while(frame < framesPerSecond + 1) {
r = Math.ceil(from.r * ((framesPerSecond - frame) / framesPerSecond) + to.r * (frame / framesPerSecond));
g = Math.ceil(from.g * (framesPerSecond - frame) / framesPerSecond + to.g * (frame / framesPerSecond));
b = Math.ceil(from.b * ((framesPerSecond - frame) / framesPerSecond) + to.b * (frame / framesPerSecond));
doTimeout('rgb(' + r + ',' + g + ',' + b + ')', frame);
frame++;
}
}
fadeColor({r:0, g:255, b:0}/*开始颜色*/, {r: 255, g:255, b:255}/*结束颜色*/, function(color) {
A.setStyleById('style', {'background-color': color})
});