如何让用户设置颜色主题?

时间:2014-08-26 05:41:11

标签: php jquery css

我很好奇Twitter如何允许用户选择颜色主题。这是CSS还是jQuery方法?它可能会保存数据库中的颜色。

如果是这样,实施类似的东西需要怎样和步骤?

其他信息: 似乎最常见的答案是使用多个CSS文件并加载用户选择的文件。

很抱歉,我应该在开头包含该过程包括让用户从颜色选择器中选择一种颜色(类似于WordPress主题,它们表明主题具有无限的颜色)。为所有这些颜色创建单独的CSS可能不是一个好主意。

3 个答案:

答案 0 :(得分:2)

我不得不说,我真的不懂twitter,因为我没有使用它。根据我的理解,您只是在寻找一种方法让用户有机会为网页选择一个主题吗?

假设我们有一个名为" config.php"它被包含在每个网页上(带来常用的功能等)。在这个config.php之上,你声明了你的.css文件,它将包含在开头。为什么不用不同的css文件来构建不同的设计?

例如:
CONFIG.PHP

<?php
if(isset($_SESSION['design'])){
    switch($_SESSION['design']){
        case 0: $design = 'included/main_theme.css';
        case 1: $design = 'included/black_theme.css';
        case 2: $design = 'included/red_theme.css';
        case 3: $design = 'included/blue_theme.css';
    }
}
else{
    $design = 'included/main_theme.css';
}

echo '<!DOCTYPE HTML PUBLIC//...">//
      <link href="'.$design.'" rel="stylesheet" type="text/css" />';
?>

现在您只需要设置一个用户可以选择自己喜欢的设计的页面。将表单提交到页面本身,将挑选的设计存储到用户的会话中,然后重新加载页面。你完成了!

您还可以将此状态存储在数据库中(我猜这会更好)。 使用这种方法,您当然也可以设置一种类似背景颜色的样式。

网站的其余部分:
请继续将config.php包含在每个页面中。

答案 1 :(得分:1)

这是一个非常广泛的问题,所以如果不深入细节,我会尝试给你一些如何处理这个问题的想法。请记住,有很多方法可以做到这一点,因此没有一种方法可以做到这一点。石头,我的只是一个想法。

您需要根据需要在某处存储所选值。如果他们不需要坚持,你可以将它们保存在数据库,cookie,会话甚至本地。

您应该将值保存在字典(关联数组)中,该字典包含键和值。键将是元素的标识符,值将是颜色。这样,您可以根据您要应用该值的元素的标识符来请求值。

应用颜色也可以通过几种方式完成。我会建议jQuery。这样,您就不必将样式标记应用于包含颜色定义的每个元素。你可以简单地使用jQuery.css()。 (看看http://api.jquery.com/css/

答案 2 :(得分:0)

你可以使用jQuery,但简单的JS就足够了。只需创建2个或更多样式表,然后允许用户更改这样的样式:

<form>
<input type="submit" onclick="switch_style('blue');return false;" name="theme" value="Blue Theme" id="blue">
<input type="submit" onclick="switch_style('pink');return false;" name="theme" value="Pink Theme" id="pink">
</form> 
来自How to Use JavaScript to Change a Cascading Style Sheet (CSS) Dynamically

。当然,这将取决于您的方法,如果您使用CMS,它会更容易,这还取决于您是否希望您的用户更改主题&#34;在飞行中&#34;或者在管理区域中选择某些内容或您需要的任何选项