【发布时间】:2017-10-16 06:39:51
【问题描述】:
我正在尝试使用 CSS 显示图像,以便我可以根据选择的样式表切换正在显示的图像。它有时工作正常,其他人则不然。你能帮我找出原因吗?
我先用php根据页面id来回显HTML:
if($host == 'comparison.php?page=1.1.9')
{
echo "<div class='image8'></div>";
}
if($host == 'comparison.php?page=1.1.10')
{
echo "<div class='image9'></div>";
}
在 CSS 中,我识别类,并告诉它显示图像:
div.image8 {
content:url(homilies/1.1.9.jpg);
width: 100%;
}
div.image9 {
content:url(homilies/1.1.10.jpg);
width: 100%;
}
1.1.10 完美运行,当我选择另一个样式表时图像会发生变化。 1.1.9 根本不起作用,当我检查元素时,'div.image8' 甚至没有出现。这里会发生什么?它也适用于其他地方,我无法弄清楚模式。
【问题讨论】:
-
如果你使用 var_dump($host) 会得到什么?
-
@boovad 当我把它放在回声之后,我得到了
string(72) "comparison.php?page=1.1.9" -
只是好奇...当您有 $_GET['page'] 可供您使用时,您为什么要检查 $host?您可以设置
$page=$_GET['page'];然后您可以将代码简化为if ($page=='1.1.9') echo '<div class="image8"></div>';可能无法解决您的问题,但它有助于使您的代码更易于调试。我还建议使用开关盒。看起来您实际上要显示的不仅仅是这两个图像。 -
@Cagey215 感谢您的建议 - 我的代码已经看起来更干净了。尽管如此,图像加载仍然没有骰子。就开关盒而言,它看起来像这样吗?
switch ($page) { case "1.1.1": echo "<div class='image1'></div>"; break; case "1.1.2": echo "<div class='image2'></div>"; break; case "1.1.3": echo "<div class='image3'></div>"; break; } -
请注意,
content应与::before或::after伪类 (stackoverflow.com/questions/17907833/…) 一起使用。例如:jsfiddle.net/as9gy8z4/2