Лучший подход, который приходит мне в голову, это динамическое генерирование файла LESS с использованием PHP (включая ваши переменные).
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 \ Затем внизу (или после объявления LESS var)из этого 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";
?>
Это будет работать как часы.
Есть статья, которую вы можете прочитать о CSS-переменных с помощью PHP написанный Крисом Койером .
Другой не рекомендуется альтернативой является компиляция LESS-файлов на стороне клиента, вы можете вручную скомпилируйте их и передайте 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>