如何让用户在其个人资料上拥有自定义CSS?

时间:2015-03-03 19:30:21

标签: php mysql css

亲爱的stackoverflowers,

我有一个网站,我需要让用户能够更改其用户个人资料页面上的某些元素。

喜欢链接颜色,字体,背景颜色和徽标等。

如何以最好的方式做到这一点?在TEXT表格中创建user_profiles字段,然后他们可以输入他们的css,在个人资料页面上<style type="text/css">$user->customCss</style>

这是我能想到的唯一一件事,但这真的很愚蠢。我只希望他们能够改变一些元素。

我知道有一个网站是这样做的,reddit.com,每个subreddit都有不同的主题。 subreddits的mod可以改变我想的一切。你觉得reddit怎么做?

2 个答案:

答案 0 :(得分:2)

不要这样做。考虑不同类型的用户:

  1. 非技术。他们可能不知道CSS是什么,他们会意外地破坏事物。支持噩梦。

  2. 技术。这些人可能会从这个选项中受益,但即使是作为开发人员,如果想调整我的个人资料页面,我仍然更喜欢使用颜色选择器和下拉列表

  3. Smart-ass技术:他们将尽最大努力打破整个布局,他们可能会成功。你可以只使用一个元素做一些时髦的事情。

答案 1 :(得分:0)

如果您希望用户能够选择主题,我建议您使用自定义CSS文件。这是我在我的网站上的方式。

  • 使用您想要的样式选项创建单独的CSS文件。在这些CSS文件中,只需要具有特定的颜色,徽标等。这是您的主要CSS文件的补充。
  • 当用户选择主题时,在用户个人资料下的数据库中输入主题的路径/名称。
  • 当用户登录时,将主题存储在会话中。
  • 如果用户更改主题,请更新会话值。

在服务器端(假设您使用的是PHP),请执行以下操作。

<link rel="stylesheet" type="text/css" href="/css/main.css">
<link rel="stylesheet" type="text/css" href="/css/themes/
<?php echo ($_SESSION["user_theme"]) ? $_SESSION["user_theme"] : 'blue' ?>.css">