拥有一个包含几乎每个页面都要使用的样式元素的怪物.css文件有什么好处吗?

我在想,为了便于管理,我想把不同类型的CSS拉出到几个文件中,并包括我的主<link />是坏的吗?

我觉得这样更好

positions.css buttons.css tables.css copy.css

vs.

site.css

你见过用一种方法做和用另一种方法做有什么问题吗?


当前回答

SASS和LESS使这一切都成为一个有争议的问题。开发人员可以建立有效的组件文件,并在编译时将它们全部组合起来。在SASS中,您可以在开发过程中关闭压缩模式以方便阅读,并在生产过程中切换回来。

http://sass-lang.com http://lesscss.org

最后,不管你使用什么技术,一个简化的CSS文件就是你想要的。更少的CSS,更少的HTTP请求,更少的服务器需求。

其他回答

我更喜欢多个CSS文件。这样就可以更容易地根据需要将“皮肤”换入和换出。单一文件的问题在于,它可能会失控,难以管理。如果你想要蓝色背景但又不想改变按钮怎么办?只要改变你的背景文件。等。

单个CSS文件的优点是传输效率高。每个HTTP请求意味着每个请求的文件都有一个HTTP头响应,这需要占用带宽。

我把我的CSS作为一个PHP文件,在HTTP头中带有“text/ CSS”mime类型。这样,我可以在服务器端拥有多个CSS文件,并在用户请求时使用PHP include将它们推入单个文件。每个现代浏览器都会接收包含CSS代码的.php文件,并将其作为. CSS文件处理。

整体样式表确实提供了很多好处(在其他答案中有描述),但是根据样式表文档的总体大小,您在IE中可能会遇到问题。IE对从单个文件中读取的选择器数量有限制。限制为4096个选择器。如果你是单片样式表,你会想要拆分它。这种限制只会在IE中暴露出来。

这适用于所有版本的IE。

参见Ross Bruniges博客和MSDN AddRule页面。

这个问题很难回答。在我看来,这两种选择各有利弊。

我个人不喜欢阅读一个巨大的CSS文件,维护它是非常困难的。另一方面,分离它会导致额外的http请求,这可能会降低速度。

我的观点有两种。

1)如果你知道你的CSS一旦你构建了它就永远不会改变,我会在开发阶段构建多个CSS文件(为了可读性),然后在正式运行前手动组合它们(以减少http请求)

2)如果你知道你会偶尔改变你的CSS,并且需要保持它的可读性,我会构建单独的文件,并使用代码(如果你使用某种编程语言)在运行时构建时将它们组合起来(运行时缩小/组合是一个资源猪)。

无论是哪种选择,我都强烈建议在客户端进行缓存,以进一步减少http请求。

编辑: 我发现了这个博客,它展示了如何在运行时只使用代码就组合CSS。值得一看(尽管我自己还没有测试过)。

编辑2: 我决定在设计时使用单独的文件,并通过构建过程来缩小和合并。这样,我可以有单独的(可管理的)css,而我开发和一个适当的整体缩小文件在运行时。我仍然有我的静态文件和更少的系统开销,因为我没有在运行时进行压缩/缩小。

注意:对于你的购物者,我强烈建议使用捆绑器作为构建过程的一部分。无论您是从IDE内部构建,还是从构建脚本构建,捆绑器都可以通过包含的exe在Windows上执行,也可以在任何已经运行node.js的机器上运行。

我使用Jammit来处理我的css文件,并使用许多不同的文件来提高可读性。 在部署到生产环境之前,Jammit完成了所有合并和压缩文件的繁琐工作。 这样,我有许多文件在开发中,但只有一个文件在生产中。