CSSStyleSheet对象  表示某种类型的样式表
CSSStyleRule对象  样式表中的每条规则

获得文档中的所有样式表
document.styleSheets

CSSStyleSheet对象
属性
type  text/css
disabled  表示样式表是否应用于当前文档。应用/禁用,false/true
href  样式表相对于当前文档所在的URL
title  可以用来分组样式表的标签
media  表示目标设备类型,screen或print  下一级属性,w3c  mediaText  IE  无
ownerRule  一个只读的CSSRule对象,表示其父规则
cssRules  一个只读的CSSRuleList列表对象,包含样式表中所有CSSRule对象  IE中为rules
方法
insertRule(rule, index);  IE  addRule(selector, declaration, index);
deleteRule(index);
没有专门用于编辑的方法,只能通过修改rules[i]的style属性直接更改。相比于直接修改element的style属性,其可以实现继承。

CSSStyleRule对象
type  继承自CSSRule对象的一个属性,已0-6表示其规则类型。对于CSSStyleRule类型的规则而言,该属性值始终为1。
cssText  表示当前状态下的全部规则。如果被js修改了,该字符串也会相应改变。
parentStyleSheet  引用父CSSStyleSheet对象。
parentRule  如@media
selectorText  规则的选择符
style  与HTMLElement.style类似,是CSSStyleDeclaration对象一个实例。

CSSStyleDeclaration对象
cssText  以字符串形式表示全部规则。
parentRule  引用CSSStyleRule对象
getPropertyValue(porpertyName);
removeProperty(propertyName);
setProperty(propertyName, value, priority);  IE不支持,只能直接通过style,以快捷的方式访问。
还有一个通过CSS2Properties访问CSSStyleDeclaration对象实例(例如HTMLElement的style属性)的快捷方法。

style属性
通过style属性只能访问到元素style属性中已嵌入的方式声明的CSS属性。style属性无法访问由多重样式表层叠而来或从父元素继承而来的任何CSS属性。

基于className切换样式
className引用的是HTMLElement对象的class属性。
为什么不用setAttribute设置class属性?
W3C  element.setAttribute('class', 'name');
IE  element.setAttribute('className', 'name');

切换样式表
1、可以使用<link>元素的rel属性定义备用的样式表
2、给body标签应用一个类名
3、添加或移除样式表

<link>元素的属性
type
href
media
rel  "stylesheet"立即应用  "alternate stylesheet"备用,可以用来控制样式表的启用与否
disabled  是否禁用
title  样式表的标题,可用来组合多个样式表。

样式表所属节点
W3C  styleSheet.ownerNode
IE  styleSheet.owningElement

修改CSS规则
只能通过修改rules[i]的style属性,直接更改,没有专用的方法。相比于直接修改element的style属性,其可以实现继承。

增加css规则
DOM2
index = length是列表末尾
stylesheets[i].insertRule(rule, index);
IE
index = -1是列表末尾
stylesheets[i].addRule(selector, declaration, index);

DOM2 规范中可以使用伪类
a[href]:after {
    content: '(' attr(href) ')';
    font-size: 40%;
}

访问计算样式
DOM2样式规范中,在document.defaultView中包含了一个叫getComputedStyle()的方法,返回一个只读的CSSStyleDeclaration对象。其中包含了,所有的计算样式。
document.defaultView.getComputedStyle(element, null);  //第二个参数,伪类
IE中使用 element.currentStyle[propertyName]

2015-03-12——简析DOM2级样式的更多相关文章

  1. 2015-03-12——简析DOM2级事件

    DOM2级事件 事件的几种类型:对象事件,鼠标事件,键盘事件,表单事件,W3CDOM事件,以及针对浏览器的事件. 对象事件:window对象,也是javascript对象.load  适用于windo ...

  2. 2015.03.12,外语,读书笔记-《Word Power Made Easy》 10 “如何讨论交谈习惯”学习笔记 SESSION 25

    1.about keeping one's mouth shut taciturn,名词形式taciturnity,沉默寡言. 美国第30任总统库里奇,以沉默寡言著称.他来自新英格兰,那里视tacit ...

  3. js 中用Dom2级事件处理函数(改变样式)

    下面这些客户端 javascript代码用到了事件,它给一个很重要的事件--“load" 事件注册了一个事件处理程序.同时展示了注册”click“事件处理函数更高级的一种方法 <!do ...

  4. Linux 目录结构学习与简析 Part1

    linux目录结构学习与简析 by:授客 QQ:1033553122 说明: /             linux系统目录树的起点 =============== /bin      User Bi ...

  5. Nutch学习笔记二——抓取过程简析

    在上篇学习笔记中http://www.cnblogs.com/huligong1234/p/3464371.html 主要记录Nutch安装及简单运行的过程. 笔记中 通过配置抓取地址http://b ...

  6. 前端03 /css简绍/css选择器

    前端03 /css简绍/css选择器 目录 前端03 /css简绍/css选择器 昨日内容回顾 html标签 常用标签 table标签:表格标签 input标签 select下拉框 textarea多 ...

  7. 简析.NET Core 以及与 .NET Framework的关系

    简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...

  8. 简析 .NET Core 构成体系

    简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代 ...

  9. RecycleView + CardView 控件简析

    今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...

随机推荐

  1. 点滴积累【JS】---JS小功能(JS实现模仿微博发布效果)

    效果: 思路: 利用多功能浮动运动框架实现微博效果,首先,将textarea中的属性添加到新创建的li里面然后,再将li添加到ul里面,再利用浮动运动框架将数据动态的显示出来. 代码: <hea ...

  2. 点滴积累【JS】---JS小功能(JS实现多物体缓冲运动)

    效果: 思路: 利用setInterval计时器进行运动,offsetWidth实现宽度的变动,在用onmouseover将终点和所选中的DIV放入参数再进行缓冲运动. 代码: <head ru ...

  3. 网络结构----ISO/OSI七层网络模型和TCP/IP四层网络模型

    对等实体在一次交互作用中传送的信息单位称为协议数据单元.它包含控制信息和用户数据两部分. 上下层实体之间的接口称为服务訪问点. ISO/OSI參考模型分为:物理层.数据链路层.网络层.传输层.会话层. ...

  4. 筛选git最后一次文件列表

    需要写一个小程序,列出出最后一次git提交的文件列表 命令如下: git log -1 --name-only 操作后,发现并不能完整的显示文件列表,查询google后,发现是git默认配置只显示90 ...

  5. Xcode7 beta 网络请求报错:The resource could not be loaded because the App Transport Security policy requir

          今天升级Xcode 7.0 bata发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport S ...

  6. RandomUser 网站介绍

    RandomUser 网站介绍 tools api 介绍 使用 结果 API 错误 请求多个用户 指定性别 密码 种子 格式 使用早期版本 国家 页码 包含/不包含字段 杂项 结束语 介绍 在 201 ...

  7. @override 报错问题

    Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多. 这是jdk的问题,@Ove ...

  8. Python-Scrapy创建第一个项目

    创建项目 在开始爬取之前,您必须创建一个新的Scrapy项目.进入您打算存储代码的目录中,运行下列命令: scrapy startproject tutorial 1 该命令行将会创建包含下列内容的t ...

  9. Dubbo—Zookeeper的典型应用

    1.Zookeeper 作为 Hadoop 项目中的一个子项目,是 Hadoop 集群管理的一个必不可少的模块,它主要用来控制集群中的数据,如它管理 Hadoop 集群中的 NameNode,还有 H ...

  10. SQL Server RAISERROR() 函数

    生成错误消息并启动会话的错误处理. RAISERROR 可以引用 sys.messages 目录视图中存储的用户定义消息,也可以动态建立消息. 该消息作为服务器错误消息返回到调用应用程序,或返回到 T ...