2015-03-12——简析DOM2级样式
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级样式的更多相关文章
- 2015-03-12——简析DOM2级事件
DOM2级事件 事件的几种类型:对象事件,鼠标事件,键盘事件,表单事件,W3CDOM事件,以及针对浏览器的事件. 对象事件:window对象,也是javascript对象.load 适用于windo ...
- 2015.03.12,外语,读书笔记-《Word Power Made Easy》 10 “如何讨论交谈习惯”学习笔记 SESSION 25
1.about keeping one's mouth shut taciturn,名词形式taciturnity,沉默寡言. 美国第30任总统库里奇,以沉默寡言著称.他来自新英格兰,那里视tacit ...
- js 中用Dom2级事件处理函数(改变样式)
下面这些客户端 javascript代码用到了事件,它给一个很重要的事件--“load" 事件注册了一个事件处理程序.同时展示了注册”click“事件处理函数更高级的一种方法 <!do ...
- Linux 目录结构学习与简析 Part1
linux目录结构学习与简析 by:授客 QQ:1033553122 说明: / linux系统目录树的起点 =============== /bin User Bi ...
- Nutch学习笔记二——抓取过程简析
在上篇学习笔记中http://www.cnblogs.com/huligong1234/p/3464371.html 主要记录Nutch安装及简单运行的过程. 笔记中 通过配置抓取地址http://b ...
- 前端03 /css简绍/css选择器
前端03 /css简绍/css选择器 目录 前端03 /css简绍/css选择器 昨日内容回顾 html标签 常用标签 table标签:表格标签 input标签 select下拉框 textarea多 ...
- 简析.NET Core 以及与 .NET Framework的关系
简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...
- 简析 .NET Core 构成体系
简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代 ...
- RecycleView + CardView 控件简析
今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...
随机推荐
- GNU Linux高并发性能优化方案
/*********************************************************** * Author : Samson * Date : 07/14/2015 * ...
- mysql数据库分库备份脚本
mysql数据库分库备份脚本 版本1 for dbname in `mysql -uroot -poldboy123 -e "show databases;" |grep -Evi ...
- JS高程3:JSON
JSON,JavaScript Object Notation,JS对象表示法,是目前最常见的传输结构化数据的数据结构. JSON并非编程语言,而是一种数据结构,像mp4.avi一样,只是一种数据格式 ...
- xgboost 安装
git clone --recursive https://github.com/dmlc/xgboostcd xgboost/make -j4 cd python-package/ python s ...
- PHP学习笔记(6)js点击刷新验证码
用“换一张”来控制验证码刷新,js脚本怎么写 宏朋雄 | 浏览 3663 次 2012-06-11 22:41 2012-06-12 01:49 最佳答案 <img src=“验证码文 ...
- C++11 中function和bind以及lambda 表达式的用法
关于std::function 的用法: 其实就可以理解成函数指针 1. 保存自由函数 void printA(int a) { cout<<a<<endl; } std:: ...
- Python-Scrapy创建第一个项目
创建项目 在开始爬取之前,您必须创建一个新的Scrapy项目.进入您打算存储代码的目录中,运行下列命令: scrapy startproject tutorial 1 该命令行将会创建包含下列内容的t ...
- Visual Studio中“后期生成事件命令行” 中使用XCopy命令
将程序所依赖的动态库与其他依赖文件做了分类,使用XCopy命令自动生成相应的目录结构. set source="$(TargetDir)" set output="$(S ...
- C语言 百炼成钢26
/* 题目62: 有一下特征字符串"eerrrrqqAB33333ABa333333ABjsfdsfdsa" 编写一个业务函数, 实现功能1:实现按照子串"AB" ...
- 【BZOJ】3296: [USACO2011 Open] Learning Languages(tarjan)
http://www.lydsy.com/JudgeOnline/problem.php?id=3296 显然,每群能交流的群是个强联通块 然后求出scc的数量,答案就是scc-1 #include ...