HTML / CSS 模块 - 最佳实践


HTML / CSS Modules - Best Practice?

我开始将独立的HTML片段提取到它们自己的文件中,并使用PHP include关键字将它们包含在内。

我有一个大约 1500 行长的 CSS 文件。 我正在考虑做的是将嵌入式CSS与相应的HTML文件放在一起。

当然,保留在不同HTML块中使用的组件。

这样,我就有了模块化的HTML/CSS块,我只是使用PHP包含在服务器上include

这是最佳实践吗?是/否,为什么

浏览器缓存 CSS 文件...因此,加载一个大型CSS文件并不是什么大问题。

如果你想让它超级高效,你可以将css拆分成不同的模块。 然后创建一个"构建系统"来检查正在使用哪些模块,并创建一个仅包含必要CSS的CSS文件(甚至缩小)。

我不会直接将你的CSS嵌入到HTML文件中,而是为每个文件提供一个外部样式表。以大致相同的方式,你应该将JS与HTML分开,这也使CSS保持独立。然后,您需要做的就是包含您的 CSS

<link rel="stylesheet" href="path/to/style.css">

您将将其放在任何全局样式表包含的下面。这也使特定于页面的 CSS 仅限于在该页面上加载,因此不会浪费带宽来传输您永远不会使用的样式。


但是,如果您include()页面中有 15 个文件,您不希望对 CSS 文件发出 15 个请求。在这种情况下,应将它们分组到较大的文件中,以减少所需的请求数。

这里有几件事需要考虑,看看什么最适合你:

  • 您的服务器当前是否发送 http-gzip 版本的 CSS 文件以使其尽可能快?
  • 您是否缩小了CSS,以查看它可以缩小到多小(有几个工具可以为您缩小文件,例如YUI压缩器)?
  • 将CSS作为片段发送将意味着浏览器无法缓存该文件;检查这是否值得。这取决于许多变量,例如每个访问者的平均页面(查看Google Analytics或其他统计软件可能会有所帮助),块的大小与整体CSS大小等。
  • 与没有 PHP 的
  • 平面文件相比,使用 PHP 提供块的服务器计算开销可能会也可能不会最小;检查这是否与您的情况相关。
  • 你们提供依赖媒体的 CSS 吗?如果是这样,请确保仅在需要时提供区块(例如,移动设备可能只需要移动区块)。