2012-04-28 75 views
0

我有这条线的位置CSS代码...PHP在CSS背景

background-image:url(upload/<?php echo $array['image']; ?>); 

,但党的事情不工作,我得到的背面是空白的屏幕,图像是在数据库中,也在正确的文件中的服务器上。 PHP不适用于CSS吗?

先进

这是不是一个CSS文件

感谢, Ĵ

这里是代码的全线...

<div style="width:100%; position:relative; margin:0 auto; padding-top:80px; height:350px; background-image:url(upload/<?php echo $array['image']; ?>); background-repeat:no-repeat; background-size:100%; text-align:center; padding-bottom:40px;"> 
+0

我想你可以设置你的htaccess文件在css文件上运行php。如果这是在一个HTML页面中,那么你应该能够设置PHP来运行这些。 – 2012-04-28 20:26:31

+0

@M。莱恩:有趣。但是,这将使客户端拥有一个“静态”css缓存版本的一次运行,除非您强制客户端重新加载css的搜索时间。 – ChristopheD 2012-04-28 20:27:44

+0

你可以告诉你打印的值是路径还是编码格式的图像? – 2012-04-28 20:32:00

回答

3

第1步:

我觉得你只是错过了url('something') 引号所以它应该是这样的:

<div style="width:100%; position:relative; margin:0 auto; padding-top:80px; height:350px; background-image:url('upload/<?php echo $array['image']; ?>'); background-repeat:no-repeat; background-size:100%; text-align:center; padding-bottom:40px;"> 

第2步: 如果不工作,只是告诉我们确切的输出,不“它不工作”,复制显示页面的源代码的一部分,所以我们可以看到值是否正确打印,例如

第3步: 如果仍然无法正常工作,我建议您是否使用某些浏览器的“检查元素”功能来查看问题。我可以建议Firefox的Firebug扩展

+0

超赞的人,'url('something')有效,非常感谢。 – user979331 2012-04-28 20:41:15

+1

如果你不把引号放到css url规则中,那真的没关系。 – lu1s 2012-04-28 20:45:31

+0

我也试过了,你是真的,没关系。但它可能取决于1)在浏览器上或2)在网址上。我相信一些更加复杂的网站(没有被引用)可能会导致CSS的错误解释。 – Kyborek 2012-04-28 20:48:17

2

里面一个CSS文件? 没有。 (编辑 - 见评论):可能在技术上可行,但仍然看起来像一个有很多缺点的计划。

在由PHP(或其他人,如html模板)生成的输出中插入内容:是。

+0

它在一个html文件中...... – user979331 2012-04-28 20:27:54

+0

只要服务器设置为解析.css文件或者CSS文件具有.php文件扩展名,PHP就无法解析CSS文件。 – JJJ 2012-04-28 20:28:53

+0

如果它在html文件中:一旦加载html页面(查看源代码),什么会生成为背景图像的值? – ChristopheD 2012-04-28 20:29:47

-2

不,PHP不支持CSS,但使用模板引擎或str_replacepreg_replace,您可以在HTML中输出一个<style>标记中的CSS。但这不是最好的主意。

+1

再说一遍,说PHP不能和CSS一起工作,这显然是错误的。 – JJJ 2012-04-28 20:31:08

+0

如果您正确地使用PHP,PHP可以使用CSS。 – 2012-04-28 20:34:32

+0

如果你看过这个问题,你会发现CSS代码中的css风格_is_,而不是一个单独的.css文件。 – fhugas 2012-04-28 20:38:50

0

PHP不关心它的工作原理。你可以使用它的CSS文件,JS文件,图像,无论你想要的。这里最重要的是脚本有一个扩展名,您的网络服务器将识别为PHP,并发送正确的MIME类型头文件。

如果你在你的html中嵌入CSS,那么它应该更容易。如果它不起作用,那么你需要验证获得服务的输出文件是否确实是正确的,以及如果选择器确实是正确的。先尝试硬编码background-image属性,看看是否有效。

0

很可能您的服务器不使用PHP解释器来处理HTML文件。改变你的HTML文件的后缀为.php,它应该可以工作。

0

只要让你当前的.css文件为.php(或任何PHP将执行,.php保证工作),然后让服务器声明它是正确的MIME类型。延期实际上并不重要。

blah.php(是blah.css)

<?php 
header('Content-type: text/css'); 
?> 
.thing {blah;} 
.other {blah;} 
body { 
    background-image:url(upload/<?php echo $array['image']; ?>); 
} 
0

如果你想有一个动态的 “CSS” 的文件,你可以创建一个PHP文件和处理变量。为了使其达到最佳效果,请在投掷任何东西之前包括header("Content-type: text/css");,然后放入CSS规则并添加变量。

现在,您可以打电话给你的文件中像<link rel="stylesheet" type="text/css" href="your_php_file.php">,你也可以处理类似<link rel="stylesheet" type="text/css" href="your_php_file.php?layout=minimal">

参数你最终的PHP会是这样:

<?php 
    header("Content-type: text/css"); 
?> 

    body{ 
      width: 0px; // your coded rules 
      background: url(upload/<?php echo $array['image']; ?> // the dynamic one 
    } 

如果您添加或不引号没关系路径。