【问题标题】:What is the best way to implement dynamic CSS & SVG values (PHP)?实现动态 CSS 和 SVG 值 (PHP) 的最佳方式是什么?
【发布时间】:2011-12-04 12:03:03
【问题描述】:

我正在开发一个用于保存多个域上的页面的基本系统。我打算在数据库中填充值并使用这些值来生成页面。

我将使用的值包括我想注入到 CSS 文件和 SVG 文件中的颜色值。

目前我正在考虑使用 .htaccess 将 .css/.svg 处理为 PHP 并从那里删除值,但是有没有更高效/优雅的方法而无需将这些文件格式处理为 PHP?

感谢所有建议。

非常感谢。

【问题讨论】:

  • 我应该补充一下,JavaScript 对此有用吗?
  • 您可以编辑您的问题以添加这样的内容。

标签: php mysql css svg


【解决方案1】:

免责声明:我并没有真正使用过 svg,但通过查看一些示例代码,我认为这对我的答案并不重要。

您的 css 文件中有关 php 的内容不适合我。我以前尝试过它并没有让事情变得更容易。默认情况下,CSS 文件不解析 php,即使您可以制作它们,也很容易忘记您是如何设置的。以下是我将如何处理它...

如果每个页面的 css 部分都不同,那么在 html/svg 页面的头部声明它是有意义的。您可以将默认样式表与几乎所有样式链接,然后只需覆盖页面头部的特定颜色值。或者甚至内联,如果这使您的输出更容易。您不必担心同一页面的多个文件中有 php 输出。

或者,如果您有一组有限的样式可以重复使用,那么在同一个文件中为它们提供所有类名并没有错。然后你可以用 php 输出类名,并为所有内容使用相同的 css 文件。这将使您保持井井有条,并且文件必须非常大,未使用的类才会影响性能。

【讨论】:

    【解决方案2】:

    我认为最好全部使用 PHP(或至少在服务器端)。您可以使用 PHP 来输出 CSS 和 SVG。您可以为其中任何一个创建文件,然后像 PHP 一样执行它们。大多数内容将是静态的,但在几个地方您可以使用 PHP 填写值。

    对于 CSS,您可以查看 LessCSS(或 LessPHP)。

    无论如何,我永远不会为此使用 Javascript。至少,不是客户端Javascript。 :) 这通常应该在服务器上完成。

    【讨论】:

    • 谢谢。我目前正在编写一个脚本来动态生成 SVG 文件(它是一个基本的渐变,1kb)。 CSS可以用同样的方式制作。如果这增长到包含多个页面/扩展 CSS,只是担心性能。如果我在每个请求上重写 CSS/SVG,如果这些文件的总和小于 10kb,会严重降低性能吗?
    • 好吧,您不必在每次请求时都将它们写入磁盘。你可以把它们放进去。反之亦然:如果您确实将它们写入磁盘,则不必在每次请求时生成它们。您可以缓存生成的文件并使用 file_put_content 左右进行处理。只需检查自上次请求以来源文件是否已更改。如果你有 MemCache 或 MySQL 内存表,你也可以用它来缓存。
    • 我不会太担心。只有当你有数百个同时访问者时,你才需要这种缓存。通常这根本不是问题。您的常规页面也是使用 PHP 生成的,不是吗?
    • 谢谢大家。是的,我现在要把它们写出来,如果它增长了,我会引入缓存或时间戳检查。再次感谢! :)
    【解决方案3】:

    我一直在考虑做这样的事情。但就我而言,我使用了一个名为 MODx 的 CMS。

    你可以在 MODx 中创建一个 css 文件,然后在调用时使用 php sn-ps 填充 css 文件。我的想法是让大多数 css 文件不是动态的,然后有一个或几个 php 的 sn-ps 会根据用户所在的页面、我发送 sn-p 的变量等返回特定的 css。

    个人注意:MODx 是一个超级强大的 CMS,你几乎可以用它做任何事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 2011-06-03
      相关资源
      最近更新 更多