我一直在想办法根据网站后端的输入(通过像PHP这样的语言)动态更改样式。通常我的样式表是单独的CSS扩展文件,但这些文件本身不允许使用PHP标记。毕竟,HTML文件中的额外标记比将所有样式放在单独的文件中要多。 HTML <style>
标记的使用可能比使用样式表更慢/更低效吗?
答案 0 :(得分:7)
针对CSS 2.1的W3C建议书包含一个关于Conformance: Requirements and Recommendations的部分,该部分没有引用文件扩展名,但确实声明:
3.4 text / css内容类型
存在于单独文件中的CSS样式表通过Internet作为一系列字节发送,并附带编码信息。传输结构称为消息实体,由RFC 2045和RFC 2616定义(请参阅[RFC2045]和[RFC2616])。内容类型为“text / css”的消息实体表示独立的CSS文档。 “text / css”内容类型已由RFC 2318([RFC2318])注册。
因此,如果文件以text/css
内容类型提供(并且@Fluffeh's answer中提到的任何缓存问题已得到解决),那么您应该没有问题。在PHP中,可以在发送任何输出之前调用header()
来设置内容类型:
<? header('Content-type: text/css'); ?>
答案 1 :(得分:3)
我不太确定你想在CSS里做太多。如果有的话,我建议可能会添加一些额外的类而不是动态地做太多。如果有的话,最好使用PHP来选择要包含的CSS表,但将它们保留为CSS。如果您继续使用相同的文件,用户可以缓存它,它看起来会更快。最好有一个50k的样式表,然后使用ocne然后缓存,而不是每个页面下载10k的样式表。