提问者:小点点

正在css背景图像中转义PHP,还是css语法中存在问题?


这本可以很简单,但我不知道这是如何工作的。我正在构建一个滑块,并使用PHP从数据库中获取图像。

问题是图像无法显示。

我使用以下代码通过CSS显示图像:

$output .= '<div class="overlay-image" style="background-image: url("'.$image.'");"></div>        

从下到上,除了图像无法显示的部分外,一切都完全正常。我甚至为覆盖图像设置CSS,例如

.overlay-image {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background-position: center;
    background-size: cover;
}

我删除了背景图像样式,并在它下面使用了img。它确实成功地显示了图像,尽管它被拧出了位置(当然还没有设计)

 <img src="'.$image.'">

$image的值包含文件夹本身。im编辑页面是索引(例如,如果打印出来,它会显示上传/img)。jpg

我也尝试过这种方法,但它不起作用。现在我真的很困惑到底是什么问题。

$image = $row['image'];
$image-bg-style = "background-image: url('".$image."'); ";

共1个答案

匿名用户

您的问题是您已经用完了不同的引号:

$output .= '<div class="overlay-image" style="background-image: url("'.$image.'");"></div>';

您将这些引号嵌套在一起:

  • PHP单引号'

请注意,超文本标记语言和CSS引号使用相同的字符,因此浏览器不知道哪个是哪个。它是这样解释它们的:

  • 一个超文本标记语言属性,style=background-Image: url(
  • 一些超文本标记语言属性,无论PHP来自$Image
  • 最后的一个杂散的");",可能只是被丢弃了

您需要做的是适当地转义CSS引号以适应超文本标记语言-"变为

$output .= '<div class="overlay-image" style="background-image: url(&quot;'.$image.'&quot;);"></div>';