如何仅在启用 javascript 时链接外部样式表
How to link external stylesheet only if javascript is enabled
我有一个页面,我希望根据是否启用javascript进行不同的样式设置。
法典:
<link rel="stylesheet" href="./css/main.css" type="text/css" />
<noscript>
<link rel="stylesheet" href="./css/noscript.css" type="text/css" />
</noscript>
我的问题是noscript.css只覆盖了一些属性,而不是全部。因此,由于main.css有更多的样式,因此它也适用。只有被覆盖的样式看起来不错。如果我删除指向 main 的链接.css页面看起来就像我想要的那样。
有没有办法将所有以前的样式"重置"为默认值,或在noscript上禁用指向main.css的链接?
谢谢!
你可以
这样做:
<script>
document.write('<link rel="stylesheet" href="./css/main.css" type="text/css" />');
</script>
<noscript>
<link rel="stylesheet" href="./css/noscript.css" type="text/css" />
</noscript>
我通常不是document.write()
的忠实粉丝,但这是最简单的事情的一个例子。 您当然可以创建<link>
标签并将其附加到<head>
或其他任何内容中,如果它太令人反感。
如果有人遇到这个老问题,我发现的最好的方法(不需要JS)是:
<noscript>
<!--
</noscript>
<link rel="stylesheet" href="./css/main.css" type="text/css" />
<noscript>
-->
</noscript>
所以如果你有JS,浏览器会看到
<link rel="stylesheet" href="./css/main.css" type="text/css" />
如果没有 JS,浏览器将看到
<!--
<link rel="stylesheet" href="./css/main.css" type="text/css" />
-->
var css = document.createElement('link');
css.rel = 'stylesheet';
css.type = 'etxt/css';
css.href = './css/main.css';
document.head.appendChild(css);
相关文章:
- 从JSON对象创建具有超链接的HTML表
- 使用 IP 地址和超链接对数据表进行排序
- 链接外部JS文件与自由标记模板
- 取消重置由外部样式表定义的样式
- 如何更改外部样式表的css规则
- 没有对CSS使用外部样式表,导致我的代码无法执行
- 外部样式表或脚本文件前面的“$”
- 如何仅在启用 javascript 时链接外部样式表
- 债权人 - 将外部样式表应用于 CKEditor 文本区域中的内部文本
- 表单操作无法正常工作.它不会移动到指令链接,即<表单 action=“”>
- 在 JSFiddle 中链接外部 JSON 数据文件
- 是否可以从外部样式表中获取 dom 元素的特定 css 属性的值,而不是从计算的样式表中获取
- Javascript:如何更改页面中所有链接的样式
- Javascript Jquery在外部样式表更改/重新加载承诺方式后执行代码
- 你能用CSS设置一个断开的链接的样式吗?
- 使用 JavaScript 通过更改链接的类属性来设置链接的样式
- 如何在单击链接时显示表单字段
- 在打印 html 内容中添加外部样式表引用后,打印预览为空白
- 单击时链接CSS样式表的JavaScript函数
- 如何在javascript中将所有“链接rel样式表”相对路径转换为绝对路径