我很好奇Twitter如何允许用户选择颜色主题。这是CSS还是jQuery方法?它可能会保存数据库中的颜色。
如果是这样,实施类似的东西需要怎样和步骤?
其他信息: 似乎最常见的答案是使用多个CSS文件并加载用户选择的文件。
很抱歉,我应该在开头包含该过程包括让用户从颜色选择器中选择一种颜色(类似于WordPress主题,它们表明主题具有无限的颜色)。为所有这些颜色创建单独的CSS可能不是一个好主意。
答案 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;或者在管理区域中选择某些内容或您需要的任何选项