2013-08-16 60 views
1

我有這個在我的html:創建和使用用戶功能lesscss

<script type="text/javascript"> 
    less = { 
     env: "development", // or "production" 
     async: false,  // load imports async 
     fileAsync: false, // load imports async when in a page under 
          // a file protocol 
     poll: 1000,   // when in watch mode, time in ms between polls 
     functions: { 
      returnCenter: function (value, context) { 
       return 'center'; 
      } 
     },  // user functions, keyed by name 
     dumpLineNumbers: "comments", // or "mediaQuery" or "all" 
     relativeUrls: false,// whether to adjust url's to be relative 
          // if false, url's are already relative to the 
          // entry less file 
     rootpath: ":/a.com/"// a path to add on to the start of every url 
          //resource 
    }; 
</script> 
<script src="less.js" type="text/javascript"></script> 

所以在功能,我怎麼可以創建和我不太文件使用的功能?

謝謝,祝你好運!

P.D.這個returnCenter不起作用。有或沒有參數。

回答

0

出於某種原因,您應該使用小寫字母來編寫函數名稱。你的函數也應該返回一個合適的類型。

嘗試:

<script> 
less = { 
    env: "development", 
    functions: { 
     returncenter: function(context, value) { 
      return new(less.tree.Anonymous)('center'); 
     } 
    } 
}; 
</script> 

現在你可以使用下面的代碼更少:

selector { 
property: returncenter();  
} 

前面更少的代碼編譯成下面的CSS代碼:

selector { 
property: center;  
} 

NB也見:User defined functions with LessCSS?

+2

是的,因爲較少繼承CSS的不區分大小寫的語法,所以要查找的函數標識符首先轉換爲小寫字符串,因此函數定義必須始終使用小寫的id(但在Less代碼本身中'returnCenter'也是有效的)。從這個意義上說,使用CSS風格的命名而不是駱駝風格(即「return-center」而不是「returnCenter」)通常不會造成混淆。 [**演示**](http://codepen.io/seven-phases-max/pen/qCjLg?editors=100)。 –