【问题标题】:Can I preprocess a Less css file?我可以预处理一个较少的 css 文件吗?
【发布时间】:2012-02-24 14:03:42
【问题描述】:

我将LessDrupal 一起使用,并且我希望允许管理员用户在全局范围内为某些站点元素定义颜色。澄清一下,我们有某种类型的内容,称之为“级别”,管理员可以向网站添加一个级别。每个级别都应该有一个关联的颜色,这将是某些 div 的边框颜色等。我希望管理员能够通过 cms 设置颜色并将其反映在外部样式表中。

DOM 中所有受影响的元素都按类进行索引。我唯一能想到的是在主 Less 文件中导入第二个 Less 或 CSS 文件,该文件将由 Drupal 动态生成。我只是想确保我没有遗漏任何东西,例如一种在 less 文件中内联 php 并在将 php 传递给浏览器或服务器端 less 编译器之前执行 php 的方法。

【问题讨论】:

  • 需要更少吗?您可以轻松地将 Less 样式表与常规 CSS 混合使用。
  • 你试过颜色模块了吗?

标签: php css drupal less


【解决方案1】:

使用这种方法,您最终会生成数百个(或任何您的受众)生成的 .less 文件。不确定这是否是您想要采取的方法。

让用户定义颜色并将其存储在 db 中,然后当用户登录时,加载他的设置并生成 CSS 代码,您只需将其嵌入 header.php(或在 Drupal 的每个页面上加载的类似文件)中:

<?php if ($user->logged_in) { ?>
<style type="text/css">
  .header {
    background-color: <?php echo $background-color; ?>;
    color:            <?php echo $header-color; ?>;
  }
  .content {
    ...
  }
  ...
</style>
<?php } ?>

.. 其余样式在 LESS 文件中定义。

默认用户(未登录)将获得您在 LESS 文件中定义的这些元素的默认颜色。以上将简单地覆盖它们(因此请确保将其嵌入下面调用主样式表)。

我会这样做。

【讨论】:

  • 我应该更清楚一点:用户所做的更改是针对管理员的,并且是对站点的全局更改。没有一个用户一个用户。基本上,我们有一些内容类型,称之为“级别”,我们用颜色编码,我想让用户(管理员)设置与他们添加到系统的每个新级别相关的颜色。
猜你喜欢
  • 2011-05-17
  • 1970-01-01
  • 2011-08-10
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 2011-06-26
  • 1970-01-01
相关资源
最近更新 更多