0

我有一个想法...

不知道是好还是坏。

我正在为 SMF Fork 开发无图像/响应式主题。我在想,既然它是用 PHP 编写的,那么添加 php 在标题中包含一个“style.php”是否有效,其中包含页面的所有样式。

我在想这会给我带来两大好处。一是我可以将变量 start 添加到 css 文件中。第二,它会少一个 HTTP 请求。我知道 pagespeed 和 yslow 会抱怨标签之间的页面中包含 css,但这并不明智,对吗?

据我所知,无论 pagespeed/yslow 怎么想,我都看到这样做有很多好处。我什至可以用javascript做到这一点,也许......

我想知道 IE 最大 4096 CSS 规则是否仍然适用?

我是 PHP Ultra Noob,但在网页设计方面拥有丰富的经验。我似乎无法找到“不”这样做的理由。有没有专家愿意分享他们对这个想法的看法?

4

3 回答 3

2

我不认为这是一个好主意。如果您想在 CSS 中使用变量,请查看 SASS 或 LESS。关于附加请求,CSS 是静态的,所以如果你在服务器端完成你的工作,浏览器只会检索一次 CSS,后续请求将使用缓存的副本。

我认为这不会有害,但是这与标准开发有很大的不同,因此仅仅为此并不是一个好主意。而且,既然没人做,那肯定不是这么聪明的发明。

于 2012-12-14T23:24:35.850 回答
1

如果它是有效的 CSS(实际上即使不是,我想),您实际上可以将任何内容作为 CSS 文件包含在内:

<link rel="stylesheet" type="text/css" href="/style.php">

//style.php
<?php header('Content-type: text/css');
   $style = 'bold';
?>
strong {
   font-weight: <?php echo $style ?>;
}
于 2012-12-14T23:22:26.307 回答
1

css 文件通常更有效以获得更好的速度,因为它只被请求一次,然后被缓存了很长时间。如果与 head 标签中一遍又一遍的相同 css 相比,它们还没有进入缓存,那么对于整个浏览会话来说这是 1 个额外的请求,这会使您的实际页面加载速度变慢。总而言之,在几次请求之后,一个单独的(可缓存的)文件通常已经胜出,只要您将其设置为可缓存很长时间(不要担心人们看不到 css 更改,如果您更改 css,只需添加一些查询参数,例如/styles.css?rev=1。您不使用该参数,只需在您的 css 更改时增加它,从而使客户端请求一个新副本。

这并不意味着您不能使用 PHP(或 nodejs/less)来创建或提供您的 CSS 文件,变量确实很好。如果走这less条路,请在您自己的服务器上将其转换为 css 一次,而不是用繁重的 javascript 来打扰客户端一次又一次地转换它。

于 2012-12-14T23:28:50.793 回答