Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS中的PHP变量不起作用_Php_Html_Css - Fatal编程技术网

CSS中的PHP变量不起作用

CSS中的PHP变量不起作用,php,html,css,Php,Html,Css,我的html文件有以下代码: <html> <head> <link rel='stylesheet' href='css/style.php' media = "screen"/> </head> <body> <h1 id="foo">My h1 foo element</h1> </body> <html> 我的h1-foo元素 对于我的php文件: <?php

我的html文件有以下代码:

<html>
<head>
<link rel='stylesheet' href='css/style.php' media = "screen"/>
</head>
<body>
<h1 id="foo">My h1 foo element</h1>
</body>
<html>

我的h1-foo元素
对于我的php文件:

<?php
    header("Content-type: text/css; charset: UTF-8");
    $asd = '#0000ff';
?>

h1#foo  {
    color: <?php echo $asd;?>;
}

h1#foo{
颜色:;
}
我已经学习了一些教程,这是我能做的最简单的一个,但不知怎么的,输出并没有按照它应该的方式工作。我错过什么了吗

另外,如果我要在css中使用php变量,它会是动态的吗?我的意思是,在php主体中,我可以覆盖css中使用的php变量的值,并且输出会改变吗

非常感谢您的帮助

你可以这样做

echo"
<style>
 h1#foo {
   color: ".$asd.";
}
</style>
";
echo”
h1#foo{
颜色:“$asd.”;
}
";

首先,要包含php文件,此语法绝对错误:

<link rel='stylesheet' href='css/style.php' media = "screen"/>

要包含Css文件,我们使用以下语法:

<link rel='stylesheet' href='css/style.css' media = "screen"/>

并包含我们使用的php文件:

<?php
include_once "a.php"; // this will include a.php
?>

对我来说很好^^

使用以下语法:

cssman.php


通过手动导航到.php文件,首先尝试输出。如果根本没有内容,PHP代码中很可能有错误,为了进行调试,您可以添加错误报告(不要忘了也要输入ini_集合('display_errors',1),否则只会记录错误)

然后将其添加到视图中:

你的观点


@导入“/Library/Stylesheets/cssman.php?type=cms”屏幕;
/*这里还有其他的文件吗*/

>P>而不是使用PHP来管理CSS,您可能需要考虑一个专门用于此目的的CSS预处理器。它还将客户端代码与服务器端技术分离

http://lesscss.org/
https://learnboost.github.io/stylus/
http://sass-lang.com/

另一个值得考虑的方法是将CSS分解成几个文件。您可以将一个通用文件应用于所有设备上的所有页面,一个包含颜色,另一个管理布局,可能是一些特定于设备的布局。

您发布的代码按预期工作。带有
id=foo
的标题变为蓝色。唯一的问题是它没有为css文件使用
.css
扩展名。要解决这个问题,您可以在css文件夹a
.htaccess
中添加Apache Web服务器的说明,以便在css文件中使用Php解释器(请看这个)

然而,对于从php动态更改它,您的意思可能是更改值(例如,在用户输入或某些其他事件之后)。 但是如果我很理解你的问题,答案是否定的

Php只能对页面进行预处理,不能在浏览器从用户处加载页面后动态修改页面。在addiction中,使用变量
$asd
上方的代码只能在style.php中更改,在此之前,它将在代码中使用


我建议您改用javascript,这样更简单。使用类似的javascript库来完成这类工作。

您所说的“它不工作”到底是什么意思。颜色值是空的还是php不作为css文件处理?您是否已经通过开发人员工具查看了响应?请签入html源代码@PraveenKumar我不反对,但有一种更简单的方法。“他们工作太辛苦了。”弗雷德二世同意
:)
在php分号后面加一个空格怎么样?这不正确。他用它链接成
css
文件。你错了。他像CSS一样包含它:
@Danyalsandelo你同意吗?@PraveenKumar他已经清楚地提到他在他的php文件中这样做……请检查一下……我认为Praveen是在建议你不需要
样式
标签。实际上可以引用php文件,因为它的行为类似于CSS文件。请参阅OPs post中的输出标题。我已经解释过这是错误的语法。在问题中,他使用了这个语法来包含一个php文件。你认为这行是什么意思<代码>标题(“内容类型:text/css;字符集:UTF-8”)
如果你想给出一个有效的答案,你可以回答使用
你的答案是不相关的,因为建议应该在评论中。
错误报告(0)
这会关闭报告,一定要让OP知道这一点。@fred ii-谢谢你的建议,但是我包括了
如果没有任何内容,PHP代码中很可能有错误,为了调试,你可以添加错误报告(不要忘了也要ini_集('display_errors',1),否则错误只会被记录下来).
这还不够吗?上帝保佑你让它工作!我认为这与输出缓冲有关:)@fred ii-没问题!我感谢你的关心!在仍有一些错误的情况下禁用错误是一个非常常见的错误。我只是禁用了它,因为很可能有一条愚蠢的无润滑信息或其他东西会破坏输出/脏^;;哦,关于我为什么使用revalidate缓存头的一点描述:如果我不使用,客户端只保存输出。。。使php文件在更新时无用。哦。。。我明白了,我以为它会以某种方式覆盖。泰!
<style type="text/css">             
    @import "/Library/Stylesheets/cssman.php?type=cms"  screen;
    /* any aditional files here aswell */
</style>
http://lesscss.org/
https://learnboost.github.io/stylus/
http://sass-lang.com/