关于脚本化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中的某些部分时要复杂一些,比 ...
随机推荐
- Html emed 和 object
<object> 标签用于包含对象,比如图像.音频.视频.Java applets.ActiveX.PDF 以及 Flash. object 的初衷是取代 img 和 applet 元素. ...
- CMake Tutorial
1.最简实例 使用cmake的最简实例是由一个源程序文件生成一个可执行文件.例如由下述C++源程序文件生成可执行文件tutorial. main.cpp #include<iostream> ...
- wukong搜索引擎源码解读
转自:https://ayende.com/blog/171745/code-reading-wukong-full-text-search-engine I like reading code, a ...
- jQuery插件placeholder的使用方法
借助该插件可以轻松实现HTML5中placeholder特效: 实例代码如下: <script type="text/javascript" src="<%= ...
- [bzoj2120][数颜色] (暴力 or 分块)
Description 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜 ...
- 去掉删除discuz x3.2 的-Powered by Discuz!
如图discuz论坛 网站标题栏的尾巴powered by discuz!是不是很想删除呢,特别是为什么会剩下短线呢?下面就叫你如何准确删除或者修改. 工具/原料 8UFTP(使用自己熟悉的网站文件上 ...
- @dynamic、@synthesize
声明property属性后,有2种实现选择: @synthesize 编译器期间,让编译器自动生成getter/setter方法. 当有自定义的存或取方法时,自定义会屏蔽自动生成该方法 @dynami ...
- 我用Cocos2d-x模拟《Love Live!学院偶像祭》的Live场景(三)
[前言和思路整理] 千呼万唤Shi出来啊(好像也没人呼唤),最近公司项目紧,闲暇时间少更得慢,请见谅. 上一章我们分析并实现了打击物件类BeatObject,和它的父节点BeatObjectColum ...
- 判断div是否有滚动条
判断div是否有滚动条 var obj=document.getElementById("showDiv"); if(obj.scrollHeight>obj.clientH ...
- centos下修改hostname,ip,netmask,gateway,dns
http://itlab.idcquan.com/linux/set/917191.html http://jingyan.baidu.com/article/e4d08ffdd417660fd3f6 ...