在jQuery中根据月/季更改样式表

我正试图找到一种方法来改变样式表,基于它与jquery的季节,因为在这一点上我不知道我是否可以在这个网站上使用php或ruby。 谢谢你的回复!

最简单的方法是调整CSS样式的范围并在高级别添加类。 我通常在body元素处执行此操作。 CSS看起来像:

body.summer ul { background-color: green; } body.fall ul { background-color: orange; } body.winter ul { background-color: white; } body.spring ul { background-color: pink; } 

然后,使用JS设置body类:

 ...   

如您所见,我在关闭body标签后立即将其放置。 我认为这是你可以放置它并使其工作的第一个地方,但你必须检查。 把它放在这里的原因是为了防止无格式内容的闪现 – 如果你在页面上有很多事情,你会想要在准备就绪的回调之前执行这个Javascript。 话虽这么说,实际上我把大部分代码放在准备好的回调中并没有太多问题。

您也可以轻松加载不同的样式表 – 可能在同一个地方。 只需创建一个样式节点并将其作为最后一个节点插入头部。 如果你的风格之间存在重大差异,你可以这样做。 保持相当棘手。

 $("head").append(" 

我建议你缩小你想要在页面上更改的项目,因为CSS文件已经加载,jQuery只是在加载静态css后应用css。 您可以将这些特定样式声明保留在css之外,或将它们保留为默认值。 例如,如果背景图像发生更改,则可以在默认的css声明中将其设置为白色。 这样,在加载时,它看起来很正常,您只使用JavaScript来加载必要的项目。

然后,您可以使用JavaScript月份函数来获取当前月份

 var month = new Date(); month = month.getMonth(); 

然后,您可以使用jQuery将这些样式应用到jQuery ready函数的头部。 你可以简单地切换if / else语句,根据月份数选择四个语句中的一个。 例如,如果要更改背景

 $("head").append(""); 

只是一个简单的例子,但它会比我认为加载整张表更有效。

将所有声明放在一个css中

 .someStyle{ color:blue;} .summer .someStyle{color:yellow;} .winter .someStyle{color:purple;} ... 

.summer下的所有类都将覆盖夏天的默认样式
然后在页面准备就绪时在服务器/客户端上 – 将此类添加到正文中

在客户端进行此操作的唯一问题是默认样式将首先呈现,然后切换到新的样式(只选择您网站用户最常见的季节 – 如果是以色列我会选择夏天;-)