2016-06-28 78 views
3

我发现的所有其他问题都与更改特定元素有关,或者使用按钮更改CSS文件,但我期望找到的是:刷新整个CSS文件

有一个脚本可以在页面刷新时交换整个CSS文件?

I.e.我有我的核心style.css和补充{color}.css文件,它替换style.css中的某些元素,我希望这些补充CSS文件在刷新时随机加载。

对不起,我甚至不知道从哪里开始。希望有人能提供一些建议?

谢谢。

回答

3

从根本上说,这只是一个随机的,如捡东西的事:(一罕见的情况下,document.write实际上不是一个坏的解决方案)

<head> 
<!-- ... --> 
<script> 
var sheets = ["sheet1.css", "sheet2.css", "sheet3.css"]; 
var sheet = sheets[Math.floor(Math.random() * sheets.length)]; 
document.write('<link rel="stylesheet" href="' + sheet + '">'); 
</script> 
<noscript> 
<link rel="stylesheet" href="sheet1.css"> 
</noscript> 
<!-- ... --> 

注意noscript后备总是会使用JavaScript禁用的浏览器上的样式表相同。

+1

包括干得好了'

+0

完美。非常感谢你! – ukijake

1

所有你需要做的用Javascript加载CSS文件是将一个<link>元素添加到DOM/body,它会自动加载。

因此,在您<head>部分,您可以包括<script>标签,只是随机选择一个数组color.css并生成链接标签,最好尽早文件,以防止闪烁英寸

<script> 
    var colors = ['red.css', 'blue.css', 'green.css']; 
    var colors_idx = Math.floor(Math.random()*colors.length); 

    document.write('<link href="'+colors[ colors_idx ]+'" rel="stylesheet" type="text/css" />'); 
</script> 

(PS。有简洁的方式来注入HTML,保持简洁把重点放在解决方案。用你喜欢的方式,document.write可有点善变。)