2011-12-19 89 views
5

我在数据库中定义了几个变量(十六进制颜色)。我需要通过PHP将这些变量从MySQL传递给LESS.js样式表。可能?将变量传递给LESS.js样式表

如果不是,任何建议的方式来做类似的事情?变亮和变暗是关键。

+0

你如何将你的LESS转换为CSS? – 2011-12-19 02:05:23

+0

立即设置客户端。我正在寻找像这样的东西:href =“styles.less&var = FFF” – Chords 2011-12-19 02:15:25

+3

那么,一旦你编译它,那么任何变量的概念都会消失。如果你正在转向服务器端,那肯定是可能的,尽管我并不确定如何。我能想到的最好的事情是让PHP用这些变量生成一个LESS样式表,然后将其与其他所有内容一起编译。 – 2011-12-19 02:17:40

回答

5

我想到的最好的方法是动态生成一个使用PHP(包括你的变量)的LESS文件。

1 \您需要在HTML页面中包含一个新的样式表。

<link rel='stylesheet/less' href='css/style.php' /> 

2 \在你style.php包含你的PHP瓦尔如下:

<?php header("Content-type: text/css; charset: UTF-8"); ?> 

@brand_color_1 = <?php echo $brand_color_1; ?>; 
/* Add all other vars do you need. */ 

3 \然后在底部(或之后你少变种声明)本style.php的添加都需要进口如下:

<?php 
    header("Content-type: text/css; charset: UTF-8"); 

    @brand_color_1 = <?php echo $brand_color_1; ?>; 
    /* Add all other vars do you need. */ 

    @import "style.less"; 
?> 

这会像钟表一样工作。

有一篇文章,你可以read about CSS Variables with PHPChris Coyier写。


另一个不建议替代被编译你少的文件在客户端,你可以手动编译并通过PHP瓦尔执行以下操作:

<script type="text/javascript"> 
var colors = ''; 
colors += '@brand_color_1: <?php echo $brand_color_1 ?>;' 
colors += '@brand_color_2: <?php echo $brand_color_2 ?>;' 
colors += '@import "style.less"'; 
// Add other imports. 
var parser = new (less.Parser)(); 
parser.parse(colors, function(err, tree) { 
    var css = tree.toCSS(); 
    // Add it to the DOM maybe via jQuery 
}); 
</script> 
+0

“3”存在问题,最后一个'>错误! – DUzun 2016-01-14 13:25:34

-1

CSS:

#header { 
    color:black; 
    border:1px solid #dd44dd; 
} 

#header .navigation { 
    font-size:12px; 
} 

#header .navigation a { 
    border-bottom:1px solid green; 
} 

#header .logo { 
    width:300px; 
} 

#header .logo:hover { 
    text-decoration:none; 
} 

LESS:

#header { 
    color:black; 
    border:1px solid #dd44dd; 
    .navigation { 
     font-size:12px; a { 
      border-bottom:1px solid green; 
     } 
    } 
.logo 
+4

Stack Exchange上的所有内容都是[CC-by-SA](http://creativecommons.org/licenses/by-sa/3.0/)。如果您不同意这些条款,那么Stack Exchange不是您捐款的有效渠道。 – Makoto 2013-05-21 03:08:00