独特的页面,独特的 CSS 文件

Avatar of Chris Coyier
Chris Coyier

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

前几天我收到一个问题,有人问我如何使用 CSS 处理一个网站上多个不同的页面样式和布局。我认为这是一个非常常见的场景。例如,您有一个主页,它与您的博客文章页面不同,与您的关于页面不同,与您的联系页面也不同。

以下是一些注意事项

应该始终存在一个主样式表

很可能,网站页面之间存在很多相似之处。甚至可能包括常见的元素,如页眉、页脚和导航。排版可能在所有页面上都相当一致(如果不是,那么您应该对此有一个充分的理由)。可能存在一个在所有页面上最常见的布局。这些内容都属于主样式表,可以在所有页面上加载。

不同的页面差异多大?有多少个页面?

假设联系页面上有一个联系表单。此表单具有特殊的样式,并且在网站的任何其他地方都没有使用。在我看来,将所有这些样式都包含在主 CSS 文件中是浪费的。这将是一大堆 CSS,会在 99% 不需要它的页面上加载。是否有大量这样的页面?

独特的页面,独特的 CSS 文件

在这些情况下,我的个人风格是在每个页面上加载主样式表,然后根据需要加载一个特定于该页面(或该“类型”页面)的附加样式表。

反对意见

并非所有人都同意这种方法。许多人说每个网页都应该只有一个 CSS 和 JavaScript 文件。这意味着更少的 HTTP 请求和更快的页面,对吧?我认为在很多情况下都是如此,但是当它以牺牲更大的必要文件为代价时,结果又如何呢?当您还考虑到这对组织来说是打击时,我认为多个 CSS 文件是值得的。

为什么我认为这有效

在绝大多数情况下,您不会有 100 种不同的布局。如果有,您可能应该退一步,重新思考这个网站上发生了什么。如果您真的需要 100 种布局,您应该考虑使用基于网格的框架。我绝不会建议为这 100 个页面中的每一个创建 100 个不同的独特样式表。这超出了合理可持续性的范围,违背了 CSS 的精神。但对于许多具有少数不同页面样式和几个怪胎的网站来说,这无疑是我最喜欢的方法。