JS 控制CSS样式表


Posted in Javascript onAugust 20, 2009

下面先记录一下JS控制CSS所使用的方法.

1.使用javascript更改某个css class的属性...

<style type="text/css">
.orig {
display: none;
}
</style>
你想要改变把他的display属性由none改为inline。
解决办法: 在IE里:

document.styleSheets[0].rules[0].style.display = "inline";
在firefox里:

document.styleSheets[0].cssRules[0].style.display = "inline";
讨论: 可以做一个函数来搜索特定名字的style对象:

function getstyle(sname) {
for (var i=0;i<document.styleSheets.length;i++) {
var rules;
if (document.styleSheets[i].cssRules) {
rules = document.styleSheets[i].cssRules;
} else {
rules = document.styleSheets[i].rules;
}
for (var j=0;j<rules.length;j++) {
if (rules[j].selectorText == sname) {
//selectorText 属性的作用是对一个选择的地址进行替换.意思应该是获取RULES[J]的CLASSNAME.有说错的地方欢迎指正
return rules[j].style;
}
}
}
}
然后只要:

getstyle(".orig").display = "inline";
就可以了。
------------------ 注意 document.styleSheets[0].rules[0].style 这个 styleSheets[0]数组的下标是代表本页的第N个CSS样式表,它的下级rules[0]的数组下标表示的则是这个样式表中的第N个样式,例如:
<style type="text/css">
.s{display="none";}
.w{display="none";}
</style>
修改S则: document.styleSheets[0].rules[0].style.display='inline';
修改W则:document.styleSheets[0].rules[1].style.display = 'inline';
注意:CSS和HTML结合的方式必须为<LINK rel="stylesheet" type="text/css" href="" /> 或<style></style>的时候以上方法可行,如@IMPORT 则不行.
====================================
下面记录一下JS访问CSS中的样式:
用javascript获取和设置style
DOM标准引入了覆盖样式表的概念,当我们用document.getElementById("id").style.backgroundColor 获取样式时 获取的只是id中style属性中设置的背景色,如果id中的style属性中没有设置background-color那么就会返回空,也就是说如果id用class属性引用了一个外部样式表,在这个外部样式表中设置的背景色,那么不好意思document.getElementById("id").style.backgroundColor 这种写法不好使,如果要获取外部样式表中的设置,需要用到window对象的getComputedStyle()方法,代码这样写window.getComputedStyle(id,null).backgroundColor
但是兼容问题又来了,这么写在firefox中好使,但在IE中不好使
两者兼容的方式写成
window.getComputedStyle?window.getComputedStyle(id,null).backgroundColor:id.currentStyle["backgroundColor"];
如果是获取背景色,这种方法在firefox和IE中的返回值还是不一样的,IE中是返回"#ffff99"样子的,而firefox中返回"rgb(238, 44, 34) "
值得注意的是:window.getComputedStyle(id,null)这种方式不能设置样式,只能获取,要设置还得写成类似这样id.style.background="#EE2C21";
在IE中CURRENTSTYLE只能以只读方式获取样式.

本文只为学习,摘录了网络搜索资料结合而成,无任何版权,可以任意转载,如原作者有不同想法,可随时联系我.

用JavaScript修改CSS属性

只有写原生的javascript了。

1.用JS修改标签的 class 属性值:

class 属性是在标签上引用样式表的方法之一,它的值是一个样式表的选择符,如果改变了 class 属性的值,标签所引用的样式表也就更换了,所以这属于第一种修改方法。

更改一个标签的 class 属性的代码是:

document.getElementById( id ).className = 字符串;
document.getElementById( id ) 用于获取标签对应的 DOM 对象,你也可以用其它方法获取。className 是 DOM 对象的一个属性,它对应于标签的 class 属性。字符串 是 class 属性的新值,它应该是一个已定义的CSS选择符。

利用这种办法可以把标签的CSS样式表替换成另外一个,也可以让一个没有应用CSS样式的标签应用指定的样式。

举例:

<style type="text/css"> 
.txt { 
font-size: 30px; font-weight: bold; color: red; 
} 
</style> 
<div id="tt">欢迎光临!</div> 
<p><button onclick="setClass()">更改样式</button></p> 
<script type="text/javascript"> 
function setClass() 
{ 
document.getElementById( "tt" ).className = "txt"; 
} 
</script>

2.用JS修改标签的 style 属性值:
style 属性也是在标签上引用样式表的方法之一,它的值是一个CSS样式表。DOM 对象也有 style 属性,不过这个属性本身也是一个对象,Style 对象的属性和 CSS 属性是一一对应的,当改变了 Style 对象的属性时,对应标签的 CSS 属性值也就改变了,所以这属于第二种修改方法。

更改一个标签的 CSS 属性的代码是:

document.getElementById( id ).style.属性名 = 值;
document.getElementById( id ) 用于获取标签对应的 DOM 对象,你也可以用其它方法获取。style 是 DOM 对象的一个属性,它本身也是一个对象。属性名 是 Style 对象的属性名,它和某个CSS属性是相对应的。

说明:这种方法修改的单一的一个CSS属性,它不影响标签上其它CSS属性值。

举例:

div id="t2">欢迎光临!</div> 
<p><button onclick="setSize()">大小</button> 
<button onclick="setColor()">颜色</button> 
<button onclick="setbgColor()">背景</button> 
<button onclick="setBd()">边框</button> 
</p> 
<script type="text/javascript"> 
function setSize() 
{ 
document.getElementById( "t2" ).style.fontSize = "30px"; 
} 
function setColor() 
{ 
document.getElementById( "t2" ).style.color = "red"; 
} 
function setbgColor() 
{ 
document.getElementById( "t2" ).style.backgroundColor = "blue"; 
} 
function setBd() 
{ 
document.getElementById( "t2" ).style.border = "3px solid #FA8072"; 
} 
</script>
Javascript 相关文章推荐
用javascript添加控件自定义属性解析
Nov 25 Javascript
JS根据变量保存方法名并执行方法示例
Apr 04 Javascript
js检测用户输入密码强度
Oct 22 Javascript
原生js配合cookie制作保存路径的拖拽
Dec 29 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 Javascript
简单讲解jQuery中的子元素过滤选择器
Apr 18 Javascript
微信小程序 loading 详解及实例代码
Nov 09 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
vue一步步实现alert功能
Jul 05 Javascript
快速将Vue项目升级到webpack3的方法步骤
Sep 14 Javascript
利用10行js代码实现上下滚动公告效果
Dec 08 Javascript
Webpack按需加载打包chunk命名的方法
Sep 22 Javascript
JS获取父节点方法
Aug 20 #Javascript
javascript 数组排序函数
Aug 20 #Javascript
用Javascript数组处理多个字符串的连接问题
Aug 20 #Javascript
JQUERY 浏览器判断实现函数
Aug 20 #Javascript
google地图的路线实现代码
Aug 20 #Javascript
JavaScript 字符串乘法
Aug 20 #Javascript
javascript 短路法代码精简
Aug 20 #Javascript
You might like
php判断字符以及字符串的包含方法属性
2008/08/30 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
超赞的动手创建JavaScript框架的详细教程
2015/06/30 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
JavaScript模板引擎Template.js使用详解
2016/12/15 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
编程语言Python的发展史
2014/09/26 Python
python中pycurl库的用法实例
2014/09/30 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
Django中的用户身份验证示例详解
2019/08/07 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
Pat McGrath Labs官网:世界上最有影响力的化妆师推出的彩妆品牌
2018/01/07 全球购物
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
学习保证书
2015/01/17 职场文书
山楂树之恋观后感
2015/06/11 职场文书
白银帝国观后感
2015/06/17 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书