我正在Less使用Drupal,我希望允许管理员用户全局定义某些网站元素的颜色。为了澄清,我们有一定类型的内容,称之为“级别”,管理员可以为网站添加级别。每个级别都应该有一个相关的颜色,这将是某些div的边框颜色等。我希望管理员能够通过cms设置颜色并将其反映在外部样式表中。
DOM中的所有受影响元素都按类编制索引。我唯一能想到的是在Less Less文件中导入第二个Less或CSS文件,它将由Drupal动态生成。我只是想确保没有什么我遗漏的,例如一种在较少的文件中内联php并在将php传递给浏览器或服务器端较少的编译器之前执行的方法。
答案 0 :(得分:0)
通过这种方法,您最终会生成数百个(或任何您的受众群体)生成的.less文件。不确定这是否是你想采取的方法。
让用户定义颜色并将其存储在db中,然后当用户登录时,加载他的设置并生成CSS代码,您只需将其嵌入header.php(或在Drupal的每个页面上加载的类似文件): / p>
<?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文件中定义的这些元素的默认颜色。以上内容只会覆盖它们(因此请确保将 嵌入中调用主样式表)。
我会这样做。