0

In the site i'm developing i would like to have users set their own custom "css" on their profile pages.

For example, i give users the ability to select a background color for <body> with a js color picker.

Then with php i create a 'css-ready' string and save it on db.

What i am asking is: how i can make this css apply everytime a user enter another user profile?

Probably will be there a lot of thing a user can customize, so there will be a big css string and i need something that will be cross browser and if possible that work also without javascript..

Thank you.

4

3 回答 3

1

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

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

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

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

于 2012-05-29T06:14:44.050 回答
1

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

于 2012-05-28T21:16:26.333 回答
0

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

<?php 
if(isset($account->user_css)){
?>
<style>
<?php echo $account->user_css; ?>
</style>
<?php
}
?>
于 2012-05-29T06:31:32.440 回答