如何缩小和组合注释掉的CSS文件

时间:2012-02-29 13:47:34

标签: javascript .net css minify

我有这些条件css文件

<!--[if IE 7]><link rel="stylesheet" type="text/css" media="all" href="/Content/css/ie7.css" /><![endif]-->    
<!--[if IE 6]><link rel="stylesheet" type="text/css" media="all" href="/Content/css/ie6.css" /><![endif]-->

我如何缩小这些,因为这些只应分别包含在IE7和IE6中?

2 个答案:

答案 0 :(得分:2)

  

换句话说,我应该缩小并将它们结合起来吗?

这与我所说的相反。

没有必要花时间优化垂死的网络浏览器。

你已经拥有的东西,并且已经足够好了:

<!--[if IE 7]><link rel="stylesheet" type="text/css" media="all" href="/Content/css/ie7.css" /><![endif]-->
<!--[if IE 6]><link rel="stylesheet" type="text/css" media="all" href="/Content/css/ie6.css" /><![endif]-->

如果您愿意,可以缩小ie7.cssie6.css以略微减小文件大小,但这些文件应该相对较小,因为它们只包含一些针对IE6 / 7的修复程序。

如果确实想要删除这些文件,那么你可以使用CSS hacks(有效的hacks,在这种情况下,所以没有)将修复包含在主CSS文件的底部你的minifier搞砸他们的风险)。

例如,如果你有这个:

<强> ie6.css

.something {
    width: 100px;
}

<强> ie7.css

.something .else {
    float: left;
}

如果您在主CSS文件的底部添加了这些文件,则可以完全删除这些文件:

/* IE6 fixes */
* html .something {
    width: 100px;
}

/* IE7 fixes */
*+html .something .else {
    float: left;
}

此处有更多信息:http://en.wikipedia.org/wiki/CSS_filter#Star_HTML_hack

答案 1 :(得分:1)

我编写并使用了一个名为RequestReduce的OSS项目,该项目会自动检查您的传出响应,并查找要捆绑和缩小的css和javascript。此工具用于多个Microsoft拥有的属性,并在社区中得到广泛采用。它解决了这个问题,就像thirtydot建议通过留下有条件评论的CSS和javascript一样。由于使用这些版本的人群每天都很小并且在缩小,因此将这些版本捆绑起来确实不值得。那些不使用IE6或7的人根本不会删除这些样式,因此不会受到影响。捆绑它们也特别具有挑战性,因为您必须根据访问者的用户代理在运行时发出不同的捆绑包。虽然RequestReduce能够做到这一点,但我可以花更多的时间来增加功能。