2

好吧,每个人都知道我们可以在 PHP 文件中使用 HTML。那么我们是否也可以在 PHP 文件中使用 CSS,并且仍然像<link rel="stylesheet" type="text/css" href="mystyle.php" />将 PHP 作为 CSS 文件传递​​一样调用它?我知道我们可以从 PHP 生成 CSS,执行类似echo "<style>(...)之类的操作</style>",但上述方法可行吗?

4

7 回答 7

3

你可以这样做。在 中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;?>;
}
于 2013-04-29T17:01:05.063 回答
1

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">...';
于 2013-04-29T16:56:31.653 回答
1

您可以这样做,即在mystyle.php脚本中使用 PHP 自动生成 CSS。让它在浏览器中可靠工作的唯一方法就是告诉他们,它确实是 CSS:

<?php
header('Content-Type: text/css');
?>
/* your CSS here... */
于 2013-04-29T16:59:57.283 回答
0

外部的任何内容<?php ... ?>,或脚本的回应,都将简单地传递给浏览器。它可以是任何东西,只要浏览器能够理解它。在您的示例中,浏览器会将 PHP 脚本的输出解释为 CSS,因此可以正常工作。

于 2013-04-29T16:58:30.743 回答
0

我认为如果您确保您的 php 文件返回包含标头类型的 css 是可能的。

header("Content-type: text/css");
于 2013-04-29T16:58:41.027 回答
0

如果你设置它应该工作

header("Content-Type: text/css");

作为你的第一行mystyle.php

于 2013-04-29T16:59:18.140 回答
0

我不知道你的意图是什么,但如果你想要的只是使用变量,我认为更好的方法是使用 CSS 预处理器。Less 很容易学习,而且这个解决方案可以比每次需要 CSS 时执行 PHP 更快。

于 2013-04-30T08:32:04.703 回答