问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

js实现单一html页面两套css切换代码

发布网友 发布时间:2022-04-28 13:20

我来回答

1个回答

热心网友 时间:2022-04-06 14:10

今天研究了一下JS的用setAttribute方法实现一个页面两份样式表的效果,具体方法如下:
第一步:在连接样式表的元素里定义一个id,例如
复制代码
代码如下:
<link
href=”1.css”
rel=”stylesheet”
type=”text/css”
id=”css”>
我定义的id是css。
第二步:写一个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>
这个函数的code可以放在页面的任何地方。
第三步:为改变页面的样式表的连接添加一个函数的触发事件,代码如下:
复制代码
代码如下:
<a
href=”#”
onClick=”change(1)”>1.css</a>
<a
href=”#”
onClick=”change(2)”>2.css</a>
该效果在IE和FF下均测试通过,相信大家看完后因该非常明了,利用这个方法我们可以让浏览者自己选择需要显示的样式表,比如年老者可以选择一个字体较大的样式表。这里需要注意的两点是:
在这个例子中函数名function后面的名字不能为links或者link,如果为links或者link,样式表将不被改变,具体什么原因我也不大清楚,可能是javascript的保留字符。
另外如果是改变整个页面的样式,你需要在样式表文件里定义body的高度为100%
方法二:
第一步:导入两套css文件
复制代码
代码如下:
<link
rel="stylesheet"
type="text/css"
title="样式A"
href="css/people1.css"
/>
<link
rel="alternate
stylesheet"
type="text/css"
title="样式B"
href="css/people2.css"
/>
第二步:写切换的js函数
复制代码
代码如下:
<script
type="text/javascript">
var
title
=
"样式A";
function
setStyle(){
//只是样式A
和样式B切换
if(title=="样式A"){
title
=
"样式B";
}else{
title
=
"样式A";
}
var
i,links;
//用dom方法获取所有link元素
links
=
document.getElementsByTagName("link");
//判断每个link元素中是否含有style字符串
,用来判断此link元素为样式表link
,同时判断此link是否包含title属性
for(i=0;
links[i];
i++){
if(links[i].getAttribute("rel").indexOf("style")
!=
-1
&&
links[i].getAttribute("title")){
//把所有link设为disabled
links[i].disabled
=
true;
//再来判断title中是否有指定的title字符串
有则把当前的link设为可视
即激活当前的link
if(links[i].getAttribute("title").indexOf(title)
!=
-1){
links[i].disabled
=
false;
//alert("ok");
}
}
}
}
</script>
第三步:在html标签中调用切换的js函数
复制代码
代码如下:
<a
href="#"
onclick="setStyle();"
>1</a>
<a
href="#"
onclick="setStyle();">2</a>
<a
href="#"
onclick="setStyle();">3</a>
<a
href="#"
onclick="setStyle();">4</a>
<a
href="#"
onclick="setStyle();">5</a>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我是北京人,五一去长沙玩,请问长沙有什么好玩的,大概穿什么衣服?_百度... 从湖南大众传媒学院到湖南商学院怎么走? 从商学院到长沙劳动西路220号电控大厦坐什么车 搜一下坡坡子街在哪个位置我现在在商学院门口怎么走我现在乘什么公交车... 为什么我的手机(ME525+)没有了3G网信号,连QQ都上不了,提示网络错误,桌面... 摩托罗拉me525 图标删了怎么恢复 ME525连接电脑问题,手机显示连接,电脑智能听到连接的声音,但桌面什么也... 摩托罗拉me525安装了一个桌面后QQ软件怎么没了 摩托罗拉me525锁屏后过有时再进入桌面时会不显示全部图标要过一会才会出... 我用的是摩托ME525+安装了360安全桌面,每次用USB连接电脑后,我的桌面主... 简述信息资源管理的特征 同一个页面如何放多个js? 请教网页中的javascript特效怎么样才能同时使用二个以上? 资源管理系统主要向其他应用系统提供什么数据 js实现同一页面多个换一批功能? 本地资源管理与网络资源管理的区别 网络管理系统的网络资源主机怎么访问子机并能从子机中获取警告信息 在一个网页中如何实现两个JS特效 同一个页面中怎样用多次相同的这个js效果?自己试着改了一下,但是不成功... 中国移动综合网络资源管理系统怎么增加机房 同一个js效果,如何在同一个页面调用4次。如何实现。。。??、_百度知 ... 资源管理系统中“网络资源”三大基本属性中没有() 怎么用js实现点击页面上的div慢慢放大,再次点击慢慢缩小。在同一个div... 网络资源管理系统与施工调度系统边界为什么 同一个js效果,如何在同一个页面调用4次.如何实现 如何在同一个页面多次使用同一个JS效果 网页在载入的时候如何做到有一个渐变效果! 就是慢慢的清晰!希望提供个... 求助各位大虾,我想用JavaScript实现网页背景的颜色渐变(从绿色变白色)。以下是我编写的代码 怎么在一个页面实现两个js效果 JS实现背景渐变轮换(已有背景轮换代码,只要一个轮换效果就可以)_百度... 网络信息资源采集系统由什么组成 js实现同一页面中,选择不同选项卡,选项卡背景改变,相对应的层显示,刷新... 急求大学期末大作业,网络资源管理系统 用VB做的EXCEL数据库的!!!! 同一个网页怎么使用多个相同的js? █关于需要断网才可以使用资源管理系统... 综合资源管理系统中传输端口状态都包括哪些 什么是网络管理?网络管理的目的是什么? 网络办公自动化管理系统(OA)和劳动力资源管理系统有什么关系 qq匿名提问暂无体验资格是什么意思? 怎样才能获取QQ自定义提问的资格? qq匿名提问自定义没有资格- 问一问 qq匿名提问自定义没有资格? 为什么匿名提问显示的是没有资格提问 qq为什么不能自定义匿名提问 为什么问了QQ好友匿问我答会出现暂无体验资格? 为什么QQ的匿名提问总是说内部正在检测中? QQ里匿名问答中此功能正在内测啥意思? qq匿问我答为什么没有资格 如何获取QQ匿名聊天资格? 2020鸵鸟养殖列为家禽了吗?