CSS中的PHP变量不起作用
我的html文件有以下代码: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>
<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/