js动态改变css样式表的实例详解

发布时间:2020-10-26编辑:脚本学堂
为大家介绍js是如何来动态改变css样式表内容的,主要是使用setAttribute方法来实现,有需要的朋友,可以参考下。

本文介绍使用setAttribute方法实现一个页面两份样式表的效果。

步骤1,在连接样式表的元素里定义一个id,例如
 

复制代码 代码示例:
<link href="1.css" rel="stylesheet" type="text/css" id="css">


定义的id是css。

步骤2,写一个js函数:
 

复制代码 代码示例:
<script type="text/javascript">
function change(a){
var css=document.getElementById("css");
if (a==1)
css.setAttribute("href","1.css");
if (a==2)
css.setAttribute("href","2.css");
}
</script>


此函数可以放在页面的任何地方。

步骤3,为改变页面的样式表的连接添加一个函数的触发事件:
 

复制代码 代码示例:
<a href="#" onClick="change(1)">1.css</a>
<a href="#" onClick="change(2)">2.css</a>

该效果在IE和FF下均测试通过,使用这个方法可以让浏览者自己选择需要显示的样式表,比如年老者可以选择一个字体较大的样式表。

注意:
1)、函数名function后面的名字不能为links或者link,如果为links或者link,样式表将不被改变,原因不明,可能是javascript的保留字符。
2)、如果改变整个页面的样式,需要在样式表文件里定义body的高度为100%。

附,另一个好用的方法,供参考。
 

复制代码 代码示例:
<script language="javascript">
/**
 * 动态改变css样式
 * www.jb200.com
*/
var b_v = navigator.appVersion;
var IE6 = b_v.search(/MSIE 6/i) != -1;
var IE7 = b_v.search(/MSIE 7/i) != -1;
if (IE6) {
document.write("<link href=""css/neiye_ie6.css"" rel=""stylesheet"" type=""text/css"" id=""cssStyle"" />");
}else{
document.write("<link href=""css/neiye.css"" rel=""stylesheet"" type=""text/css"" id=""cssStyle"" />");
}
</script>

希望以上的代码,可以帮助大家学习掌握动态改变Css样式表的方法,有兴趣的朋友,动手实测一下吧。