一、二或三

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 $200 免费积分!

这就是任何网站上应该加载的 CSS 文件数量。

  • 一个单页网站。
  • 一个相当简单的网站,只有几个页面,而且差异不大。
  • 一个博客或类似博客的网站,即使有数千个页面和分类法,它们看起来也基本相同。
显然,一个单页网站只需要一个 CSS 文件。更多的是为了你,而不是为了网站。
只有几个页面的网站可能只需要一个 CSS 文件。即使它有几个页面使用不同的模板,只要这些模板相当相似,就可以全部组合在一起。
即使有数百或数千个页面的网站,如果页面基本相同,也可以使用单个 CSS 文件。即使有各种分类法,比如典型的博客。

  • 一个具有全局设计模式的 Web 应用程序,以及在网站的不同部分使用的较少使用的设计模式。
  • 内容丰富的网站,具有全局结构、网格和排版,以及为需要更多内容的网站特定部分加载的附加 CSS。
  • 每个页面都非常独特的网站(全局和页面特定 CSS)。
  • 大多数网站。
一个具有不同“孤岛”部分的 Web 应用程序可能需要两个 CSS 文件。一个全局文件包含最常见的模式,另一个部分特定文件包含该部分需要的较少常见的模式。
具有许多风格迥异的页面的网站可能需要两个样式表。一个全局(可能有一些共享元素)和一个特定于唯一页面的 CSS 文件。

  • 需要全局 CSS、部分特定 CSS 和一次性页面 CSS 的非常复杂的网站
具有不同部分以及该部分的子模板的网站可能需要一个全局、一个部分特定和一个页面特定或一次性 CSS 文件。

我建议最多使用三个 CSS 文件。

这是部署的 CSS

当我提到一、二或三时,我指的是从已部署网站的头部链接的 CSS 文件。我指的是你作为开发人员编辑的 CSS 文件。为此,你应该在对你来说有意义的任何模块化块中进行工作。然后,这些模块化块将被组合成最终的部署文件集。你可以使用像 Rails Asset Pipeline 这样的工具,使用 CSS 预处理器,或使用像 CodeKit 这样的应用程序来实现这一点。

例如

全局 = main.css + grid.css + typography.css + buttons.css + print.css
站点部分 A = tabs.css + editor.css
站点部分 B = forms.css + video.css + details.css

在网站的“编辑器”部分加载的内容 = global.css & site-section-a.css
在网站的“详情”部分加载的内容 = global.css & site-section-b.css

一个不总是更好吗?

不。如果你想创建一个页面特定的 CSS 文件,并以某种方式将它需要的部分连接到那个单个文件,不要这样做。它看起来像是,嘿,一个请求比三个请求更好!但这样你就完全不能利用浏览器的缓存。

假设你处于典型的两个样式表场景中。当你浏览网站的特定部分时,除了第一个加载之外,所有这些页面加载都不需要加载任何 CSS 文件,因为它们已经缓存了。即使跳转到新的部分,也只需要加载一个新文件(全局文件已经缓存了)。

如果你为每个页面创建一个唯一的 CSS 文件,用户将需要为他们访问的每个页面请求一个新的样式表。

好的

现在你可以嘲笑我过度简化了问题。=)