【问题标题】:CSS Preproccessor: Sass, Less, Php & Vals from the database [closed]CSS 预处理器:数据库中的 Sass、Less、Php 和 Val [关闭]
【发布时间】:2012-08-09 17:50:21
【问题描述】:

我终于开始研究 CSS 预处理,并试图找出最佳途径。我的主要问题是:

  1. 使用 SASS 或 LESS 而不是 Php 的价值是什么?
  2. 如果我要使用 SASS 或 LESS,集成数据库中的值的最佳方法是什么?

显然使用 php 在标题中打印样式是一个非常糟糕的主意。我正在使用 php 创建样式表,并将其导入为“Content-Type: text/css”。然后它将创建样式表,该样式表将按原样提供并正确缓存。我可以使用数据库中的值并使用我已经熟悉的语言。

在创建/使用样式表方面,SASS 和 LESS 比 Php 有什么优势,如果我使用它们,使用数据库中的值的最佳方式是什么?我是否需要使用 Php 从数据库中获取值,基本上继续我上面的方法,仅用于该用途,然后使用 SASS、LESS 或其他来处理样式表的其余部分?

非常非常感谢您的帮助!

【问题讨论】:

  • 为什么要从数据库中获取数据以在 CSS 中使用?它是什么数据?
  • 你应该看看less的php端口..可能会让事情变得更容易

标签: php sass less


【解决方案1】:

像 SASS 和 LESS 这样的 CSS 预处理器提供的不仅仅是使用动态代码提供 PHP(或任何其他服务器端语言)文件,还提供 content-type:text/css

他们给你:

  • Mixins - 类的类。
  • 参数混合 - 可以向其传递参数的类,如函数。
  • 嵌套规则 - 类中的类,减少重复代码。
  • 运算 - CSS 中的数学。
  • 颜色功能 - 编辑您的颜色。
  • 命名空间 - 可以通过引用调用的样式组。
  • 范围 - 对样式进行本地更改。
  • JavaScript 评估 – 在 CSS 中评估的 JavaScript 表达式。

自己在 PHP 中完成所有这些工作将是一项公平的努力!

关于从数据库中获取数据并在您的 SASS / LESS 中使用它,预处理器不允许您开箱即用。您可以编写自己的 PHP 代码,该代码将从数据库中读取,收集您需要的信息和值,然后使用这些值将 SASS 或 LESS 文件写入文件系统。如果您不需要上述预处理器提供的功能,您也可以编写一个普通的 CSS 文件。

【讨论】:

  • 酷,感谢您的详尽回答。是的,我很确定 Php 可以完成所有这些,并且有很多类可以完成它。但是,目前,我确实没有需要。除此之外,最好为设计目的使用正确的语言/代码。欣赏!
  • 这就是问题所在,也是我要解决的问题。 Sass 和 LESS 很棒,因为它们专注于 CSS 实现。但据我所知,如果它们是由 js/php/ruby 处理的,它们永远不会比它们更强大。我仍然对为什么感到困惑,而不是编写代码来解释 css preporcessor,只是让库/类/函数与语言本身一起工作 - js/php/ruby?已经有类可以处理颜色、操作、命名空间、范围和 js 评估——并且是日常常见的功能。更不用说他们拥有更多的权力。
  • Php/js 自然地与其他一切集成,以防您希望根据引用站点、日期/时间等修改 css,而不是修改内联样式或切换整个样式表。图片可以根据需要直接写入css。使用的数据库值。正则表达式。如果评估是在服务器端完成的,绕过 LESS/Sass 并仅使用 Php/js/ruby 将节省资源。一些很好的文章举例说明:net.tutsplus.com/tutorials/php/supercharge-your-css-with-php-under-the-hood 颜色:reallyfitz.com/projects/csscolor,另一个:fwebde.com/css/php-动态css
  • 说了这么多,我承认我对学习一门新语言、语法高亮、自动完成以及学习如何随着时间的推移最大化它不感兴趣。从长远来看,我宁愿投资于更有力量的东西,如果我的结论有任何依据,我仍然想知道为什么这么多投资于限制更大的语言。但同样,我仍然不了解它们的内里和外在,所以我希望有人能告诉我他们最佳可能性的差异,而不仅仅是他们目前提供的,并且打折那些令人惊叹的 php/js 风格资源存在。
【解决方案2】:

作为一个经常使用php并且已经使用Sass几个月的人:

  1. 使用 SASS 或 LESS 而不是 Php 的价值是什么?

在这些预处理器中,所有工作都已为您完成。您可以使用自己编写的 php 实现相同的目标,但这会浪费时间。几个月甚至几年的工作、测试和评估已经进入了 Sass 和 Less,仅举两个例子。为什么要复制这项工作?

许多 IDE 已经支持 .scss 文件的语法高亮显示,例如,可以更轻松地阅读和编写代码。

您不需要服务器来运行 Sass 或 Less,这使得它们非常便携。 Sass 确实需要 Ruby,但 Less 只需要 javascript,即:它可以在任何地方运行。

使用像 Sass 这样的东西会让你以一种非常结构化的方式思考你的 CSS,并鼓励一些好的习惯。

  1. 如果我要使用 SASS 或 LESS,集成数据库中的值的最佳方法是什么?

我从来没有做过这样的事情,但我可以这样处理它。 在数据库中有一个专门用于存储变量的表,从一个 id、一个类名和一个存储为文本字符串的值开始,无论是测量值、十六进制颜色,都可以。

每当您向表中添加新定义时,运行一个脚本来更新一个 .scss 文件(如果您使用的是 Sass),称为 db_values.scss 只需在文本中写入列出一大堆变量和它们的值,在预处理器所需的语法中。

在你的主预处理器文件中,导入这个生成的文件,它不会给你臃肿的样式表,生成的 css 只会使用它需要的变量。

【讨论】:

  • 从数据库中,您是说用 Php 或其他方式获取值以写入 scss 文件,对吗?事实上,我可能会坚持使用 LESS。就目前而言,我仍然需要从数据库中获取用户定义的样式,所以如果 Php 现在可以做到这一点,那么一点点。期待深入研究。谢谢!
猜你喜欢
  • 2012-11-07
  • 2019-10-02
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 2015-09-10
  • 2014-01-12
  • 2013-08-26
  • 2015-07-30
相关资源
最近更新 更多