2014-06-23 32 views
0

我如何创建一个像这个页面一样的直播风格和脚本切换器? http://www.momizat.com/theme/goodnews/带有PHP和Cookie的CSS切换器?

他们提供了一个面板,使访问者可以很容易地改变页面(css)的外观和菜单栏(jQuery)的效果。再加上一个cookie,当访问者移动到另一个页面时,定制将保持加载到目标页面上。

我想将这些功能应用到我的网站,所以我的访问者不会厌倦只有一种风格,但可以根据他们的口味而变化。

每个答案都将非常赞赏。谢谢...

+0

编写代码将是一个好的开始:提供可用样式列表,提示选择,将选项设置为cookie。 –

+0

我们不是在这里教你编程。你必须编写代码,我们会尽力帮助解决它。 –

+0

谢谢,你是聪明的男孩 – bl4ckbox

回答

3

我没有看过你的示例页面的执行,但大多数网站会使用这种方法:当用户点击主题切换按钮

    • 集在cookie
    • 新值添加特定的类名的body标签(即类=“THEME1”)
  • 对于每一个主题,有你的CSS开始机智h该类名称(即body.theme1 p { color: red; }
  • 当用户加载页面时,请阅读cookie并相应地设置类名称。
+0

或者你把这个主题放在另一个样式表中,而不是你的default.css – colburton

+0

@colburton - 真的......我想这取决于主题的不同。如果他们只是将背景和文字的颜色切换出来,那么最好是基于课程。如果他们差异很大,你的方法可能会好得多。 – Steve

+0

没有打算成为你的答案任何批评。 OP是另一种选择,但本身并不值得另一个答案;-) – colburton

0

好吧,如果你想用PHP来做到这一点:

0)首先,会议必须在每一页上开始或者这不会起作用,因为必须对会话开始或者启动饼干或在下一页上访问它。

<?php session_start(); ?> 

1)你必须编写开始在HEAD标签的PHP脚本:

<?php 
if (isset($_REQUEST['theme'])) { $_REQUEST['theme'] = $css1; echo "<link rel='text/stylesheet' href='path/to/{$css1}.css'>"; 
    else echo "<link rel='text/stylesheet' href='path/to/default.css'>"; 
?> 

所以现在如果有一个叫“主题”设置参数,值一个cookie好了该参数将作为一个css文件而不是default.css。

2)现在,您需要为用户提供一个切换主题的选项,可能通过下拉式表单。

<?php 
echo "<form name='myForm'><select onchange='this.form.submit()' name='theme'>"; 
echo "<option value='theme1'>Theme 1</option>"; 
echo "<option value='theme2'>Theme 2</option>"; 
echo "</select></form>"; 
?> 

注意:我没有真正运行这段代码,我确信有错误,但这只是我如何做的一般性概述。

要排除故障:确保表单正在提交。您可以使用print_r($_REQUEST);转储出来的cookie的内容进行故障排除。然后确保CSS文件的路径是正确的。最后,一旦你完成了所有的工作,确保你没有从被缓存的CSS文件中得到错误的结果。例如,在Chrome中,您可以打开“Inspect Element”开发人员工具,每次完全刷新页面。