2010-06-10 57 views
2

我一直在阅读关于css和js压缩和最小化。特别是后Concatenate and minify JavaScript on the fly OR at build time - ASP.NET MVC我开发一个MVC ASP.NET应用程序,并使用Combres来最小化和压缩文件。我不太高兴,现在我正在评估斯科特在后面提到的MVCScriptManager。结合并最大限度地减少css与标题和rel属性

但是,我的css文件有问题:在我的网站中,我允许用户更改页面的样式,我实现了定义不同样式表的这项任务。

要更改样式时,用户点击一个按钮,我可使用“标题”链接标签的属性的正确风格:

$('link[rel*=style][title]').each(function(i) { 
    this.disabled = true; 
    if (this.getAttribute('title') == styleName) this.disabled = false; 
}); 

而且在我的网页的头部分我有什么是:

<link rel="stylesheet" type="text/css" href="/Content/css/green.css" title="Green" media="screen" />  
<link rel="alternate stylesheet" type="text/css" href="/Content/css/cyan.css" title="Cyan" media="screen" /> 
<link rel="alternate stylesheet" type="text/css" href="/Content/css/orange.css" title="Orange" media="screen" /> 
<link rel="alternate stylesheet" type="text/css" href="/Content/css/navy.css" title="Navy" media="screen" /> 
<link rel="alternate stylesheet" type="text/css" href="/Content/css/purple.css" title="Purple" media="screen" /> 
<link rel="alternate stylesheet" type="text/css" href="/Content/css/pink.css" title="Pink" media="screen" /> 
<link rel="alternate stylesheet" type="text/css" href="/Content/css/wine.css" title="Wine" media="screen" /> 

问题是,当我结合样式表我不能依靠标题和rel属性做切换。任何帮助或建议,将不胜感激!

提前致谢!

+0

嗨!我是Combres的作者。你能告诉我你为什么不喜欢Combres的原因吗?这将帮助我知道我应该如何改进图书馆,以使其对其他人更有用。谢谢! – 2010-06-11 04:08:11

+0

嗨! Combres很棒,但有时我必须自己压缩js文件,因为Combres无法做到这一点。我一直在想,可能我做错了什么,但我想不出来... – fabianadipolo 2010-06-13 03:03:09

回答

3

好吧,你真的应该按需加载CSS文件。

因此,如果用户选择粉色,pink.css <link>将作为<head>中的最后一个元素插入。

+0

谢谢!我没有想到这一点。现在我所做的是在加载页面时加载样式表,然后当用户改变样式时,我会使用请求的样式表动态改变href属性!我想为你的答案投票,但我不能,因为我没有15点的声望! – fabianadipolo 2010-06-12 15:13:50

+0

那么,你仍然可以接受它作为答案:) – unomi 2010-06-13 00:03:13

+0

你走了,现在你可以投票了:p – unomi 2010-06-13 00:48:54