我可以把它放在我的HTML中<head>吗?
<link rel="stylesheet" href="http://site.com/some/php/script/userid/style.php" />
Run Code Online (Sandbox Code Playgroud)
基本上,我可以通过URI段(或GET变量)将用户ID传递给PHP脚本 - 它仍然会被有效地视为样式表吗?
因此,例如,如果在我的webapp中用户的页面有自定义CSS样式表,我可以在控制器中动态加载它,将其作为样式表URL输出 - 这可能吗?我知道PHP部分肯定是可能的,但这仍然有效或完全兼容浏览器/服务器吗?
谢谢!
我假设你问"这会有用吗?" 而不是"这是有效的HTML?" 为此,请参阅@ Gordon的回答.
如果您的PHP脚本输出text/css内容类型和有效的CSS,这将正常工作.
header("Content-type: text/css");
Run Code Online (Sandbox Code Playgroud)
此标头是FF解释CSS所必需的.看到这里的原因.
还需要添加一些缓存头,否则可能会在每次页面加载时请求资源.
然而...
如果您需要输出动态CSS,请考虑使用静态样式表(即不能由PHP解释的样式表)和所有常规内容,并在文档头部添加动态数据:
<link rel="stylesheet" href="http://site.com/resources/style.css" />
<style type="text/css">
.userText { color: <?php echo $userTextColor; `> }
etc. etc.
</style>
Run Code Online (Sandbox Code Playgroud)
这样,CSS资源可以保持静态文件.它不需要启动PHP进程来获得服务.如果您的CSS参数在页面之间发生变化,这将为您节省HTTP请求.