如何在此页面中创建实时样式和脚本切换器? http://www.momizat.com/theme/goodnews/
?
它们提供了一个面板,以便访问者可以轻松地更改页面的外观(css)以及菜单栏上的效果(jquery)。还有一个cookie,以便当访问者移动到另一个页面时,自定义将保持加载到目标页面上。
我想将这些功能应用到我的网站上,所以我的访客不会厌倦一种风格,但可以根据他们的口味而变化。
每个答案都将非常感激。感谢...
答案 0 :(得分:3)
我还没有看过您的示例页面的实现,但大多数网站都会使用这种方法:
body
标记上添加特定的类名称(即class =" theme1")body.theme1 p { color: red; }
)答案 1 :(得分:0)
好的,如果你想用PHP做到这一点:
0)首先,必须在每个页面上启动会话,否则这将无效,因为必须启动会话才能启动cookie或在下一页访问它。
<?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'>";
?>
好的,现在如果有一个名为'theme'的参数设置了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”开发人员工具,该工具每次都会完全刷新页面。