1

使用 CSS 外部样式表而不是设置为 的 php 文件有什么好处content-type: text/css?如果你把这个头文件放在 PHP 文件的顶部,我觉得你有更多的潜力:

<?php
    header("Content-type: text/css");

    if($query_string = "contact_us") {
        #nav {}
    }
?>

(^ 那是一个 .php 文件)。http://shapeshed.com/using_php_to_enhance_css/

如果没有失败(我检查了它们是如何缓存在 Chrome 的网络面板中的,我相信它是一样的),是不是有点像使用.htmlor .php

感谢您的任何反馈。

4

5 回答 5

2

以下是一些区别:

  • 与提供纯静态 CSS 相比,PHP 将产生额外的 CPU/内存开销。可能不是那么多,但仍然是一个考虑因素。显然,你做的处理越多,交易就越大。
  • 您不能将 PHP 文件推送到 CDN
  • SASS 和 LESS 已被开发用于处理您可能需要的任何动态功能,因此 PHP 可能不是必需的
  • 听起来您担心提供比某些页面所需的更多 CSS。实际上这不是问题,因为浏览器会在第一次下载后缓存 CSS。

额外的想法:

我编写了一个 UI 模板引擎,它将 JS 和 CSS 代码隔离到仅使用它们的特定视图。如果一个 CSS 或 JS 被多次使用,它会被推送到“厨房水槽级别”并被全局包含。这限制了选择器冲突,并最好地平衡了 HTTP 请求的数量和每个请求的总下载大小。将相关代码(即按钮事件侦听器或页面/元素特定样式)保持在一起有助于更快速的编程,尤其是对于非专家团队/开发人员。

于 2012-09-28T03:05:14.743 回答
0

在诸如SASSLESS之类的 CSS 预处理器之前,这可能会很好。

于 2012-09-28T02:53:41.097 回答
0

动态 CSS 甚至不如动态 JavaScript 有用,更不用说动态 HTML。拥有一个包含所有规则的大文件比拥有一个规则更改的文件更有效,因为与后者相比,您可以更轻松地将前者缓存在客户端中。

于 2012-09-28T02:53:52.087 回答
0

现实情况是,这并没有太多好处……动态 CSS 没有很多有效的用例,而您所描述的肯定不是其中之一。如果您只是将所有 css 合并并缩小到一个文件中,它将缓存在客户端上,并且只有在您破坏缓存时才会下载。

于 2012-09-28T02:56:41.133 回答
0

在模块化 CMS 中,这可能很有用。只要您的应用程序可以生成一个.php一致地生成完全相同的 CSS 用于缓存目的的 URL,您就可以显着减少要下载的 CSS 数量。例如,使用 1 个主题和 5 个模块(每个都提供 CSS)的页面可以返回该组合的 CSS,而不是 1 个主题和 50 个模块的 CSS。这可能是 50KB 的 CSS 和 500KB 之间的差异——对于较慢的连接来说是一个巨大的节省。

如果您的网站是手工制作的,例如在一个预先知道特定目标的网站中,那么确实没有像其他人回答的那样这样做的充分理由。

于 2012-09-28T03:04:29.500 回答