使用PHP文件扩展名编写动态CSS样式表效率较低吗?

我一直在想办法根据网站后端的输入动态更改样式(通过 像PHP这样的语言。 通常我的样式表是单独的CSS扩展文件,但这些文件本身不允许使用PHP标记。 毕竟,HTML文件中的额外标记比将所有样式放在单独的文件中要多。 HTML &lt; style&gt; </ code>标记的使用是否比使用样式表更慢/更低效?</ p>
</ div>

展开原文

原文

Ive been trying to think of ways to dynamically change a style based off of input from a website back-end (through a language like PHP). Normally I have my stylesheets be separate CSS-extension files, but these won't allow for PHP tags natively. It is, after all, extra markup in your HTML file than having all of your styles be in a separate file. Is the usage of the HTML <style> tag perhaps slower/less efficient than using a stylesheet?

duanjiao6731
duanjiao6731 当然,我修改了我的问题。更脏的标记我的意思是,最好在PHP文件中使用HTML并将CSS保存在CSS文件中,以避免在单个代码位置中使用更多语言。
大约 8 年之前 回复
doukaojie8573
doukaojie8573 这句话让我有点困惑:“毕竟,比将所有样式都放在一个单独的文件中更糟糕的标记”-你能否澄清一下(更多是为了我自己的理解而不是其他任何东西)。谢谢。
大约 8 年之前 回复
dongsheng4126335
dongsheng4126335 我问的问题不是引用讨论,而是要求一个具体的例子可能会更快。我认为这根本不是一个基于意见的问题,但也许我应该重新考虑问题本身,以避免使用像“最佳实践”这样的短语。
大约 8 年之前 回复
doushang1890
doushang1890 意见并不适用于程序员,我们更喜欢特定的概念(白板)问题,几乎没有辩论和/或意见的空间,甚至更具体的参考支持答案。至于这个问题,以及几乎所有“最佳实践”问题,都缺少一件事:最佳做法是什么?grainlarceny答案将根据您的具体建设和您的确切要求而有所不同。很少有银弹......
大约 8 年之前 回复
doudao2954
doudao2954 因为问题的措辞暗示答案将基于观点或风格/技巧。无论规范是什么,它都是如此。规范可以说一件事,但如果规范说明,它不一定是最好的做法。
大约 8 年之前 回复
dongzhan5286
dongzhan5286 我认为没有理由将其转移给程序员,这是一个技术问题。
大约 8 年之前 回复
doubingjiu3199
doubingjiu3199 Gah,我投票决定关闭“不是一个真正的问题”,但无论如何,这个问题更适合软件工程。我认为它没有任何问题,它最大限度地减少了PHP对基于偏好的系统的使用。
大约 8 年之前 回复

2个回答



W3C CSS 2.1建议书包含一致性:要求和建议,它没有引用文件名扩展名,但是说明了:</ p>
\ n


3.4 text / css内容类型</ h2>

存在于单独文件中的CSS样式表通过Internet作为一系列带有编码信息的字节发送。 传输结构称为消息实体</ strong>,由RFC 2045和RFC 2616定义(参见 [RFC2045] [RFC2616] )。 内容类型为“text / css”的消息实体表示独立的CSS文档。 “text / css”内容类型已由RFC 2318注册( [RFC2318] )。</ p>
</ blockquote>

因此,前提是该文件是使用 text / css </ code提供的 >内容类型(以及 @Fluffeh的答案中提到的任何缓存问题),您应该没有问题。 在PHP中,可以通过调用 header()<来设置内容类型 / code> 在发送任何输出之前:</ p>

 &lt;? 标题('Content-type:text / css');  ?&gt; 
</ code> </ pre>
</ div>

展开原文

原文

The W3C Recommendation for CSS 2.1 contains a section on Conformance: Requirements and Recommendations, which makes no reference to filename extension but does state:

3.4 The text/css content type

CSS style sheets that exist in separate files are sent over the Internet as a sequence of bytes accompanied by encoding information. The structure of the transmission, termed a message entity, is defined by RFC 2045 and RFC 2616 (see [RFC2045] and [RFC2616]). A message entity with a content type of "text/css" represents an independent CSS document. The "text/css" content type has been registered by RFC 2318 ([RFC2318]).

Therefore, provided that the file is served with the text/css content type (and that any cacheing concerns are addressed as mentioned in @Fluffeh's answer), you should not have a problem. In PHP, the content type can be set with a call to header() before any output is sent:

<? header('Content-type: text/css'); ?>

doujiu8178
doujiu8178 错过这个意味着我的风格在Firefox和Chrome中被破坏了,但不是IE ...这解决了它,所以谢谢!
7 年多之前 回复



我不太确定你想在CSS里做太多。 如果有的话,我建议可能会添加一些额外的类而不是动态地做太多。 如果有的话,最好使用PHP来选择要包含的CSS表,但将它们保留为CSS。 如果您继续使用相同的文件,用户可以缓存它,它看起来会更快。 最好有一个50k的样式表,然后使用ocne然后缓存,而不是每个页面下载10k的样式表。</ p>
</ div>

展开原文

原文

I am not so sure that you want to do too much inside the CSS. If anything, I would suggest maybe adding some extra classes rather than doing too much dynamically. If anything, you might be better off with using PHP to pick a CSS sheet to include, but leave them as CSS. If you keep using the same file, the user can cache it, it appears much quicker. It would be better to have a stylesheet of 50k that is used ocne then cached rather than a stylesheet of 10k that is downloaded with each and every single page.

douxing8939
douxing8939 可以根据需要设置Expires:,Last-Modified:,Cache-Control:和Pragma:HTTP标头来控制缓存(浏览器和代理)存储输出的方式。
大约 8 年之前 回复
立即提问
相关内容推荐