是否在客户端或服务器端完成了对CSS的转换?

时间:2014-01-18 12:35:57

标签: c# asp.net asp.net-mvc asp.net-mvc-4 less

在很多关于比较LESS/SASS的文章中,声称LESS将在客户端使用CSS代码转换为JavaScript

我还在ASP.NET MVC中发现了一个名为LessTransform的东西,用于捆绑。

例如:

var bundle = new StyleBundle("~/Content/style").Include(
    "~/Content/myStyles.less");
bundle.Transforms.Add(new LessTransform());

bundles.Add(bundle);    

问题1:是否真的以这种方式填充LESS服务器端?

大多数比较都注意到LESS是客户端(作为性能上的弱点),SASS与Ruby更好地集成。

问题2:是否因为LessTransform使用ASP.NET MVC 4.0时LESS是一个更简单的选项?

1 个答案:

答案 0 :(得分:3)

  1. 是的,在您的示例中,转换是服务器端的。可以在客户端编译它,但是捆绑这不是这种情况。当我说客户端我的意思是浏览器而不是所有浏览器都支持这个(仅限现代)。

  2. 我同意少在asp.net mvc中获得更多支持。 特别是Visual Studio Web Essentials支持less。

  3. http://vswebessentials.com/features/less

    我经常将它用于:

    • .less to .css preview
    • 查看.less编译
    • 的输出
    • 提取变量/ mixins

    <强>更新

    它确实支持Sass,但它有限并于2013年5月5日发布。

    要证明.less是在服务器上编译的,如果将以下内容添加到bundle中的less文件中(未编译):

    @color: #4D926F;
    
    #header {
      color: @color;
    }
    h2 {
      color: @color;
    }
    

    然后查看在编译后的浏览器中返回的响应:

    #header {
      color: #4d926f;
    }
    h2 {
      color: #4d926f;
    }
    

    Compiled less