如何動態使用無點變量。我的意思是如何在無點文件中動態分配值。有什麼辦法嗎?如何更改動態變量值
style.less文件包含
@url_image:
#head{ background: url(@url_image) no-repeat left top white;}
我如何分配在運行時的值?
如何動態使用無點變量。我的意思是如何在無點文件中動態分配值。有什麼辦法嗎?如何更改動態變量值
style.less文件包含
@url_image:
#head{ background: url(@url_image) no-repeat left top white;}
我如何分配在運行時的值?
當你說在.less文件中動態更改時,我不確定爲什麼你只想在較少的文件中進行更改。如果只是在.less文件中進行更改,則必須編譯該文件,以便將更改導航到style.min.css和style.css文件,而這些文件無法通過編程方式執行。
這是你可以做什麼:
$('#head').css('background-image', "url("new-source");
所以jQuery的/ JavaScript是你最好的選擇
這可以,如果你手工解析和輸出帶點文件來完成。
var config = DotlessConfiguration.GetDefaultWeb();
config.DisableVariableRedefines = true;
string less = File.ReadAllText(fileName);
StringBuilder sb = new StringBuilder(less);
sb.AppendLine(string.Format("{0}: {1};", "@url_image", "image.jpg"));
return LessWeb.Parse(sb.ToString(), config);
有很多方法可以做到這一點。就我而言,內容和動態參數都存儲在數據庫中。你可以做這樣的事情,如果你想改變一個十六進制代碼的顏色,例如:
var parser = new dotless.Core.Parser.Parser();
var env = new dotless.Core.Parser.Infrastructure.Env { Compress = true, Debug = true, KeepFirstSpecialComment = false, DisableVariableRedefines = false };
var tree = parser.Parse(css.Detail.Text, null);
foreach (var key in layout.LessDetails.CurrentValues.Keys)
{
var rule = tree.Variable("@" + key, tree);
if (rule != null)
{
string value = layout.LessDetails.CurrentValues[key];
if (value != null && value.StartsWith("#"))
{
rule.Value = new dotless.Core.Parser.Tree.Color(value.TrimStart('#'));
}
}
}
css.Detail.GeneratedText = tree.ToCSS(env);
,因爲有許多其他類型的參數,這不是一個結束所有的解決方案,但它應該引領你在正確的方向。查看dotless.Core.Parser.Functions,獲取有關各種選項的有用信息。
或者,還有另一個簡單的選項。使用上面的代碼,您可以簡單地將更改後的變量追加到css.Detail.Text字符串的末尾。實際上,這是modifyVars方法在less.js文件中的工作原理。通過在最後再次添加參數,它將覆蓋之前的設置值。
我們可以使用這裏的解析方法。如果可以的話該怎麼辦?請給我提供幫助。 –
解析方法是什麼意思?你想解析什麼?請澄清,樂意提供幫助。 – Ani
是解析。謝謝。我們怎樣才能解析?實際上這是要求。 –