我怎样才能提供更少的CSS上下文?

时间:2013-06-20 17:38:58

标签: node.js less

我需要传递动态css内容。简而言之,我需要这个:

<link href="/css/site.css?color=111111" rel="stylesheet" type="text/css">

其中site.css没有处理更少的代码。

所以我在服务器端安装了Node.js + LESS,并且后续行正常工作:

$ lessc testless.less

但我仍然没有弄清楚如何配置服务器来回答这些HTTP请求。

1)最好的选择:使用apache还是node.js? (我已安装并运行了apache服务器)

2)我应该如何配置我的服务器和应用程序来实现这一目标?

任何帮助都将不胜感激。

由于 罗南

2 个答案:

答案 0 :(得分:1)

我会建议另一个基于JavaScript的预处理器 - http://krasimir.github.io/absurd/。我们的想法是使用JavaScript对象或JSON并生成CSS。之后,可以将此CSS添加到文档中。

api.add({
    body: {
        marginTop: "20px",
        width: "100%"
    },
    header: {
        width: "100%"
    }
});

汇编为:

body {
  margin-top: 20px;
}
body, header {
  width: 100%;
}

AbsurdJS可用于服务器端(nodejs)或客户端使用。好的是你可以使用通常的js代码中提供的所有内容。

答案 1 :(得分:0)

我解决了构建http://twitterbootstrap3navbars.w3masters.nl/http://twitterbootstrap3buttons.w3masters.nl/的同类问题。对于这两个应用程序,我使用apache与php。

对于使用Lessphp的按钮生成器,对于导航栏生成器,我通过PHP的exec()调用lessc。

我使用较少的代码来编写内联样式表。在您的情况下,您将创建一个动态样式表。

所以例如使用:

<link href="/css/site.php?color=111111" rel="stylesheet" type="text/css">

使用site.php:

<?
//use lessphp from http://leafo.net/lessphp/
header("Content-type: text/css", true);
$less = new lessc;
echo $less->compile('p {color: '.$_GET['color'].'; }');
exit;

<?
//use lessc
header("Content-type: text/css", true);
exec( echo "p { color: '.$_GET['color'].'; }" | /usr/local/bin/lessc -',$output,$error);
echo implode("\n",$output);
exit;