Soo*_*ead 12 asp.net-mvc less dotless
介绍:
我在asp.net mvc环境中尝试LESS.
我使用dotless进行服务器端处理(我不想使用客户端处理,尤其是发布整个项目).
我必须根据不同的事物(例如一天中的时间)应用不同颜色方案的设计.
在这种情况下感觉不那么强大,因为设计一个参数化的css并且只在每个主题的文件开头改变10个变量真的令人振奋.
问题:
但我需要以某种方式从外部参数更改颜色主题.
思路:
首先我认为像style.less?theme = fuschia这样的URL参数会很好,但我发现无法解析这样的东西.
然后我认为制作一个非常短的blue.less,green.less,orange.less只包含声明的颜色变量,并且在每个变量中都包含main.less将是一个可靠的解决方案.
我没有机会尝试第二种解决方案,但我认为这是一个很好的时机,可以就最强大的方式寻求建议.
问题又出现了:我想从外面控制我文件中的一些东西.
Tig*_*ine 24
是的,你可以(因为我出于这个原因实现了这个功能).
Dotless通过querystring参数支持来自外部的参数.
<link rel="stylesheet" href="style.less?foo=bar" />
会让你使用以下内容:
@foo = bar;
参数注入代码非常简单.它只是将变量声明预先设置为普通的较少文件,因此任何作为查询字符串参数的内容都将遵循上述语法.
有问题的代码非常简单:https://github.com/dotless/dotless/blob/master/src/dotless.Core/Engine/ParameterDecorator.cs
AFAIK,你不能传递dotnetless的参数来进行编译.
作为一个建议,为什么不只是调用不同的文件?使用Viewbag属性可以很容易地做到这一点.
要制作不同的较少的文件,首先要创建一个包含每组颜色的较少文件.然后导入基本css文件.dotnetless会将父文件中的颜色定义与基本文件中的用法合并.所以你有类似的东西 -
@baseGray: #ddd;
@baseGrayDark: darken(@baseGray, 15%);
@baseGrayLight: lighten(@baseGray, 10%);
@import "baseCss.less";
我刚刚测试了这个和MVC3项目,它的工作原理.
| 归档时间: | 
 | 
| 查看次数: | 4253 次 | 
| 最近记录: |