我正在用 asp.net 4.0 开发一个网站。在设计时我有一个问题
- 每个网页都有单独的 css 好不好?
或者
- 在一个 CSS 中包含所有样式?
请告诉我什么是最好的解决方案?
最好将所有规则保存在一个 CSS 文件中,因为该文件将为所有后续请求缓存。
除非你有大量的 CSS(即超过几百 kB),否则这不会影响 CSS 引擎的性能,但它会显着加快页面的加载速度,因为不必为每个加载的页面重复请求,这除了生成的 HTML 页面之外,这将是您最大的加载时间增益。
编辑:您应该考虑实现编译时(或按需)连接;这样您就可以拥有多个 CSS 文件,这些文件将作为单个文件提供给您的客户。
这取决于您的代码库的大小。
通常全局规则都应该在一个文件中,除非您正在处理大量代码库,并且将它们组织到单独的文件中是有意义的(但仍然在每个请求中全局包含)。
通常页面特定的 CSS 应该放在它自己的文件中,并且只包含在需要它的页面中。
一般来说,对于大型代码库,您将拥有一个缩小器和构建过程,将所有全局 css 连接到一个文件中,并将其包含在生产环境中。这可能很难调试,因此在开发中最好将它们保存为单独的文件。
除了其他答案中概述的缓存和最小化好处之外,请考虑您的 CSS 本质上是为您的网站或 Web 应用程序分配一个主题。如果您考虑一个主题在您最喜欢的媒体播放器或网络浏览器中的工作方式,当您应用该主题时,它通常会影响整个应用程序,而不仅仅是其中的一部分。
因此,如果您将 CSS 视为一个主题,那么您的设计师就可以更轻松地更改网站的外观和感觉,而无需触及任何一行 HTML。由于一个好的设计实践是让你的 HTML、JavaScript 和 CSS 完全分开,它可以更容易地对其中的一个进行更改,而不必担心对其他的更改。这减少了出现错误的机会,因为不变的事物保持稳定。
更重要的是,您的设计师只需更改 1 个文件即可创建新主题,这使他们的工作更轻松。它使您的工作更轻松,因为您不必经历和修复一堆损坏的 HTML 和 JavaScript,因为 CSS 专家必须对可能不是他们专业领域的代码进行更改。
这种做法的一个很好的例子是 Stack Exchange。Stack Overflow、Server Fault、Super User和Stack Apps都运行在同一个 Q&A 引擎上,但每个主题的主题略有不同。要创建一个全新的问答网站,前端更改几乎只涉及 CSS 更改。这就是 Stack Exchange 可以摆脱只有 1 名设计师Jin的情况,他负责管理网络上每个问答网站的设计。使他的工作更轻松的是标准化和简单性,并遵循“不要重复自己”的经验法则。
从浏览器源码看,你可以看到只有 1 个 CSS 文件:
<link rel="stylesheet" type="text/css"
href="http://cdn.sstatic.net/stackoverflow/all.css?v=52aab16f8140">
不,为每个网页保留单独的 CSS 是不好的。专业人士从不这样做。但是你可以为不同的浏览器使用两个或三个单独的 css ..