在php中从数据库动态生成css样式的选项

时间:2011-06-06 23:09:53

标签: php css stylesheet

我正在开发一款应用程序,允许用户在应用程序中选择样式选项。然后,这些选项将用于生成动态网页。我想知道我的选择是什么来实现这个页面的样式,以及这些选项的优缺点是什么?

我看到它的方式,我有以下三个选项:

  • 应用css inline

  • 创建动态php样式表......例如:<link rel="stylesheet" type="text/css" href="http://domain.com/style.php/>

  • 我也听说过缓存样式表,但我甚至不确定如何做到这一点。如果这是最好的选择,那么最好的选择是什么呢?

这些选项都可用吗?那对我想要达到的目标最好?

感谢任何输入

3 个答案:

答案 0 :(得分:5)

当然,你的第二个选择是最好的。

使用style.php,您可以根据登录的用户随时输出。

考虑我使用style.php甚至不需要为用户自定义它。 有了它,您可以扩展CSS功能,如:

<?php $blue = 'color:#yourbluecolorFFF'; ?>    //  EXAMPLE

td { <?php echo $blue; ?>}
/*etc*/

另外不要忘记:

header('Content-Type: text/css');

答案 1 :(得分:1)

TLDR摘要

  1. 这是你要做的事情的基础。
  2. 你可以试试,但我认为你会遇到同样的缓存问题。
  3. 根据服务器的服务方式而不是基于您的代码来缓存文件。

  4. 我会说逐步加载样式表,让用户选择他们想要的样式。

    也就是说,将样式表加载到“图层”中。例如,您可以使用静态“style.css”来记下所有样式中常见的基础知识。然后,您可以烹饪3张纸,每张纸稍微改变/覆盖样式:

    1. red-style.css用于红色主题颜色,
    2. blue-style.css用于蓝色主题颜色,
    3. 从那里你有两个选择。你可以

      1. 保留所有class / id值为静态,并在页面重新加载时更改样式表(并通过PHP插入以备将来的页面加载)或
      2. 您可以一次性加载它们并让您的PHP更改类/ ID值(例如#content-article变为#content-article-red#content-article-blue)。不推荐。
      3. 无论如何,我的两分钱。 :)

答案 2 :(得分:0)

这实际上取决于样式选项的精细程度。如果它是一些简单的东西,可能会使用内联CSS是最好的选择。如果有足够的自定义,那么我建议你在“保存”时间生成他们的自定义CSS并将其存储在文件系统上。我个人不喜欢styles.php,因为它是服务器上的一个额外负载,比较发送静态文件的Web服务器与必须通过php处理该请求然后提供内容。

除非您真的很少访问者和/或CSS经常更改(我无法思考为什么),否则最好使用内联css或为每个用户生成动态css文件。

根据您在评论中的回答。我认为保存后生成CSS文件最好,并覆盖包含在包中的默认CSS文件。

我看到的最简单的解决方案。您可以拥有一个模板CSS文件,您可以在其中包含标签。将模板加载到PHP变量中。用您从设置表单中收到的输入替换标签。保存/覆盖CSS,你就完成了。