用PHP实现动态色彩

时间:2016-01-02 22:55:57

标签: php sass

我想在管理面板中添加支持以更改布局默认颜色。示例:

$color: #333; // I will get this color from DB
background-color: $color

我读了一下Sass,我可以用它来做吗?我不想创建具有不同颜色的7 style.css

有可能吗?我知道我可以创建" style.php"并设置Content-header CSS,但我不喜欢这样。

1 个答案:

答案 0 :(得分:2)

对于您要完成的任务,您可以利用服务器端变量来覆盖CSS。我个人觉得这种技术很混乱,但它会适合你想要完成的任务。

例如,如果您将布局设计为具有此CSS:

.myBlock {
   background-color: blue;
}

你把它包含在你的HTML中:

<link rel="stylesheet" type="text/css" href="mylayout.css">

然后,您可以使用PHP动态构建覆盖:

<link rel="stylesheet" type="text/css" href="mylayout.css">
<style>  
   <?php
       $overrides = ['.myBlock' => 'background-color: blue;'];
       foreach ($overrides as $class => $css) {
          echo($class.' {'.$css.'}');
       }
   ?>
</style>

服务器端处理后呈现的HTML如下所示:

<link rel="stylesheet" type="text/css" href="mylayout.css">
<style>
    .myBlock {background-color: blue;}
</style>

由于CSS的性质,这是最后定义的规则,因此将是浏览器使用的规则。

另一种方法,可能是更干净的方法,是使用JSON和Javascript。您可以使用PHP获取服务器端的数据数组,并对其进行JSON编码以进行回显。然后使用Javascript,您可以应用颜色。例如:

<script>
   var colors = <?php echo(json_encode($colorData)); ?>;
   $('.myElement').css('background-color', colors['myElement']);
</script>
相关问题