我如何让用户能够在他们的配置文件中使用自定义CSS


How do I give users the ability to have custom CSS on their profiles?

尊敬的 stackoverflowers

我有一个网站,我需要让用户能够更改他们的用户配置文件页面上的一些元素。

如链接颜色、字体、背景颜色和徽标等

怎样才能做到最好呢?在user_profiles表中创建一个TEXT字段,他们可以在其中输入css,在配置文件页面上执行<style type="text/css">$user->customCss</style>

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

我知道有一个网站是这样做的,reddit.com,每个reddit子网站都有不同的主题。reddit子版块的mod几乎可以改变我所想的一切。你认为reddit是怎么做到的?

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

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

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

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

如果你想让用户能够选择主题,我建议你为此定制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">