好吧,每个人都知道我们可以在 PHP 文件中使用 HTML。那么我们是否也可以在 PHP 文件中使用 CSS,并且仍然像<link rel="stylesheet" type="text/css" href="mystyle.php" />
将 PHP 作为 CSS 文件传递一样调用它?我知道我们可以从 PHP 生成 CSS,执行类似echo "<style>
(...)之类的操作</style>"
,但上述方法可行吗?
7 回答
你可以这样做。在 中mystyle.php
,添加第一行:
header('Content-type: text/css');
然后像任何 PHP 一样使用变量等来编写代码。由于标头声明,您的 php 在浏览器打开时将被解析为 css 文件。
因此,您可以执行以下操作:
<?php
header('Content-type: text/css');
/* ------------------------
PHP Vars
------------------------ */
$color1 = "#fff";
$fontSize = "15px";
?>
.someSelector {
color: <?=$color1;?>;
font-size: <?=$fontSize;?>;
}
CSS用于样式标记。PHP 不是标记,因此您不能应用样式。
但是,如果您只是尝试使用 PHP 脚本来输出 CSS,您可以使用与输出 HTML 相同的方式来执行此操作:
<?php
header("Content-type: text/css");
echo "h1 { text-decoration: underline; }";
?>
或者
<?php
header("Content-type: text/css");
?>
h1 { text-decoration: underline; }
如果您尝试从也生成 HTML 的脚本中输出 CSS,则可以回<style
显您在问题中指出的块,或者您可以在生成的 HTML 中使用内联样式:
<?php
echo '<h1 style="text-decoration: underline">...';
您可以这样做,即在mystyle.php
脚本中使用 PHP 自动生成 CSS。让它在浏览器中可靠工作的唯一方法就是告诉他们,它确实是 CSS:
<?php
header('Content-Type: text/css');
?>
/* your CSS here... */
外部的任何内容<?php ... ?>
,或脚本的回应,都将简单地传递给浏览器。它可以是任何东西,只要浏览器能够理解它。在您的示例中,浏览器会将 PHP 脚本的输出解释为 CSS,因此可以正常工作。
我认为如果您确保您的 php 文件返回包含标头类型的 css 是可能的。
header("Content-type: text/css");
如果你设置它应该工作
header("Content-Type: text/css");
作为你的第一行mystyle.php
我不知道你的意图是什么,但如果你想要的只是使用变量,我认为更好的方法是使用 CSS 预处理器。Less 很容易学习,而且这个解决方案可以比每次需要 CSS 时执行 PHP 更快。