我正在尝试设计一个tumblr主题.我发现它的风格非常有限.
我正在考虑使用这种东西为不同的页面加载不同的样式表:
var pathname = window.location.pathname;
if (pathname.indexOf("tagged/inspiration") != true){
<link rel='stylesheet' href='/style.css' />
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,如果js被禁用,我就不会得到那个文件.因此我想我会添加一个样式表:
<link rel='stylesheet' href='no-js/css' />
Run Code Online (Sandbox Code Playgroud)
虽然可以隐藏这是js启用了吗?
最重要的是我想做什么有什么不对?
阅读网页设计博客的人有多大可能禁用javascript?
非常感谢
HTML处理数据
CSS处理
JS处理交互的样式
如果您需要样式仅应用于JS,请在样式前加上.js:
#foo { color: red; }
.js #foo { color: blue; } /* javascript enabled style */
Run Code Online (Sandbox Code Playgroud)
并致电:
$('html').addClass('js');
Run Code Online (Sandbox Code Playgroud)
Modernizr将为您处理此问题,并添加大量其他有用于特征检测的类.
如果您觉得需要添加第二个样式表(一个用于JS,一个用于非JS),则可以采用多种不同的方式.对于以下示例,我假设link[rel="stylesheet"][type="text/css"],但我太懒了,无法添加它们.
<link href="no-js.css" />
<script type="text/javascript">
document.write('<link href="js.css" />');
</script>
Run Code Online (Sandbox Code Playgroud)
<link href="js.css" />
<noscript>
<link href="no-js.css" />
</noscript>
Run Code Online (Sandbox Code Playgroud)
<link href="no-js.css" />
<script type="text/javascript">
$('link').last().attr('href', 'js.css');
</script>
Run Code Online (Sandbox Code Playgroud)