用户配置文件自定义 css


User profiles custom css

在我正在开发的站点中,我希望让用户在他们的个人资料页面上设置自己的自定义"css"。

例如,我让用户能够使用 js 颜色选择器为<body>选择背景颜色。

然后使用 php 我创建一个"css-ready"字符串并将其保存在 db 上。

我要问的是:每次用户输入另一个用户配置文件时,我如何使此 css 应用?

可能会有很多用户可以自定义的东西,所以会有一个大的 css 字符串,我需要一些跨浏览器的东西,如果可能的话,也可以在没有 javascript 的情况下工作。

谢谢。

您可以尝试使用带有内容类型文本/css标头的php文件,该文件根据从数据库中获取的CSS回显CSS,您可以将默认CSS添加到您的网站,只需在链接标签列表中创建一个最后一个该php文件的路径,这样您就可以有一个默认CSS来回退,如果定义了任何自定义CSS,则可以在默认值之上应用自定义CSS。

可以在 asp.net 中使用处理程序来完成。我相信PHP中也会有类似的解决方案。首先,您需要将样式属性保存在数据库中,用于每个用户。确保样式的语法(选择器名称、大括号、分号等)按顺序排列。您可以从会话对象获取用户信息,也可以将带有查询字符串的变量传递给处理程序。

从处理程序收到的响应可以直接作为内容类型放在标签之间 - text/css,如下所示:

有了这个,你应该准备好了!

但是,这将导致性能损失,因为每次加载页面时,都会加载整个文件(在普通 css 文件中,它只加载一次)。最好只将那些项目保存在数据库中,你真的希望你的用户自定义。您可以将其与父 css 文件级联以获得更好的性能。

你可以使用这个是user-profile.tpl.php

<?php 
if(isset($account->user_css)){
?>
<style>
<?php echo $account->user_css; ?>
</style>
<?php
}
?>