我可以预处理一个Less css文件吗


Can I preprocess a Less css file?

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

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

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

让用户定义颜色并将其存储在数据库中,然后当用户登录时,加载他的设置并生成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文件中定义的。上面的内容只会覆盖它们(所以请确保将其嵌入到调用主样式表的下面)。

我会这样做的。