关于脚本化css
---恢复内容开始---
想把自己认为的最重要的,最有用的几块写上,以后会边学边总结完善。
1.首先我们通过JavaScript可以获取到我们想要获取的元素的样式。而这个样式并非单独的哪一个部分的规则决定的,这个样式是由一下几部分组成的:
1)web浏览器的默认样式
2)样式表中的规则(style或者link引入的样式)
3)标签元素style属性规定的样式
注意:以上所说的由这三种组合起来的样式叫做“计算后的样式(computedStyle)”
由此我们需要获取的是计算过之后的样式:
1)DOM标准用的是 window.getComputedStyle(ele,null)[attr] DOM标准用的是window的getComputedStyle方法
2)IE8及其以下不支持这个方法,而支持IE自由的一个属性currentStyle[attr]->通过它来获取
3)注意返回值:对于百分数点小数返回的是绝对值,而对于有尺寸的返回的是包含“px”的字符串,后期使用时还需要处理
4)透露一点getComputedStyle()和currentStyle返回的是 CSSStyleDeclaration对象(计算样式对象)
5)下面写一个兼容性的处理:
function getStyle(ele,attr){
if(window.getComputedStyle){
return window.getComputedStyle(ele,null)[attr];
}else if(ele.currentStyle){
return ele.currentStyle[atr]
}else {
return ele.style[attr]; //若都不支持
}
}
2.除了获取元素的样式之外,通过JavaScript我们还可以获取dom文档中的样式表,并且可以修改增加里面的样式
1)在脚本化样式表时主要是有两类需要使用的对象
>>>1.第一类对象,由<style>和<link>元素表示,这两种包含或者引用样式表,对于这两个可以通过id或者tagName等进行获取
>>>2.第二类是CSSStyleSheet对象表示样式表本身
>>>3.document.styleSheets是一个表示所有CSSStyleSheet对象的只读的类数组对象
2)对于获取到的样式表可以有三个操作
>>>1.可以对CSSStyleSheet对象的disabled属性进行设置来规定要不要启用该样式表(true/false)
>>>2.通过CSSStyleSheet对象的cssRules属性可以获取该样式表中的所有的规则的集合(IE不支持这个IE使用rules来代替这个)
>>>3.除了以上两种操作之外,还有一个就是对样式表的实际操作(主要有增加和移除样式表中的规则两种操作)
>>1.对于标准是通过CSSStyleSheet对象的insertRule()和deleteRule(arg1,arg2)方法(arg1:表示选择器规则的内容,arg2:表示规则要插入的位置)
>>2.IE有自己的添加和移除的方法:addRule()和removeRule(arg1,arg2,arg3)方法(arg1:表示选择器,arg2:表示规则内容,arg3:表示规则需要插入的位置)
>>>4.cssText表示要表示的规则的内容
3)还有就是创建样式表,通过创建style标签和规定style标签的innerHTML来完成
关于脚本化css的更多相关文章
- 深入理解脚本化CSS系列第六篇——脚本化伪元素的6种方法
× 目录 [1]动态样式 [2]CSS类[3]setAttribute()[4]CSSRule对象添加[5]空样式覆盖[6]CSSRule对象删除 前面的话 我们可以通过计算样式来读取伪元素的样式信息 ...
- 深入理解脚本化CSS系列第四篇——脚本化样式表
× 目录 [1]CSSStyleSheet [2]CSSRule 前面的话 关于脚本化CSS,查询样式时,查询的是计算样式:设置单个样式时,设置的是行间样式:设置多个样式时,设置的是CSS类名.脚本化 ...
- 深入理解脚本化CSS系列第三篇——脚本化CSS类
前面的话 在实际工作中,我们使用javascript操作CSS样式时,如果要改变大量样式,会使用脚本化CSS类的技术,本文将详细介绍脚本化CSS类 style 我们在改变元素的少部分样式时,一般会直接 ...
- 深入理解脚本化CSS系列第一篇——脚本化行内样式
× 目录 [1]用法 [2]属性 [3]方法 前面的话 脚本化CSS,通俗点说,就是使用javascript来操作CSS.引入CSS有3种方式:外部样式,内部样式和行间样式.本文将主要介绍脚本化行间样 ...
- JavaScript权威指南--脚本化CSS
知识要点 客户端javascript程序员对CSS感兴趣的是因为样式可以通过脚本编程.脚本化css启用了一系列有趣的视觉效果.例如:可以创建动画让文档从右侧“滑入”.创造这些效果的javascript ...
- 浅谈脚本化css(二)
查询计算样式 window上面有一个方法叫做getComputedStyle可以来获取元素的计算样式,也就是css样式. window.getComputedStyle(ele. null); J ...
- 深入理解脚本化CSS系列第二篇——查询计算样式
× 目录 [1]getComputedStyle [2]注意事项 [3]currentStyle[4]IE 前面的话 元素的渲染结果是多个CSS样式博弈后的最终结果,这也是CSS中的C(cascade ...
- 脚本化CSS类-HTML5 classList属性
HTML元素可以有多个CSS类名,class属性保存了一个用空格隔开的类名列表.标识符class在JavaScript中是保留字,所以在JavaScript中可以用className. //如下代码设 ...
- 深入理解脚本化CSS系列第五篇——动态样式
前面的话 很多时候,DOM操作比较简单明了,因此用javascript生成那些通常原本是HTML代码生成的内容并不麻烦.但由于浏览器充斥着隐藏的陷阱和不兼容问题,处理DOM中的某些部分时要复杂一些,比 ...
随机推荐
- Angular - - angular.equals
angular.equals 对比两个对象/值是否相等.支持值类型.正则表达式.数组和对象. 如果下列至少有一个是正确的,则将两个对象/值视为相等. 两个对象/值能通过===比较. 两个对象/值是同一 ...
- easyui datagrid行中点击a标签链接,行被选中,但是获取不到对应的参数
easyui中使用比较多的就是datagrid了,表格中添加连接,点击跳转,为比较常用的方式;往往在点及标签后调用getSeleted方法会失效; 一.初始代码: {field: 'id',title ...
- 完美解决夏天电脑cpu发烫问题
最近有朋友跟我反馈,说苹果电脑虽然好用,但是一直有一个问题困扰着他,就是电脑散热的问题.每到夏天的时候,电脑运转之后就会发烫,用的特别的不舒服. 相信用电脑的都会有这样的感受吧,更加相信你们都用过以下 ...
- ViewSwitcher的功能与用法
ViewSwtcher代表了视图切换组件,它本身继承了FrameLayout,因此可以将多个View层叠在一起,每次只显示一个组件.当程序控制从一个View切换到另一个View时,ViewSwitch ...
- 在ASP.NET MVC中使用JQ插件datatable
1. Models public class Citys { public int Id { get; set; } public string CityName { get; set; } publ ...
- 去除 MyEclipse updating index
去除 MyEclipse updating index http://zhidao.baidu.com/link?url=OfHjTTxnNRoijnsaweBl3K3UTlnlFGdtHEQIvEW ...
- Runtime of Objective-C
[0] Outline -- [1] 版本和平台 -- [2] 与Runtime System交互 -- [3] 方法的动态决议 -- [4] 消息转发 -- [5] 类型编码 -- [6 ...
- POJ1144(割点)
Network Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12551 Accepted: 5771 Descript ...
- Xamarin 小试牛刀 通知栏消息通知和按钮(基于Java代码人肉转换)
本示例基于网友现有安卓项目人肉翻译,在Xamarin中替换和修改了很多方法的命名,比如某些属性需要去掉getName的get前缀, 有些方法名称需要使用Pascal命名法替换Java的Camel 命名 ...
- 基于MAC OS 操作系统安装、配置mysql
$ sudo mv mysql-5.1.45-osx10.6-x86_64 /usr/local/mysql$ cd /usr/local$ sudo chown -R mysql:mysql mys ...