我正在使用WAMP。我想从我的数据库中获取背景图像URL,并希望在div类'box'中显示它。我按照跟进的方式尝试了但是没有成功。当我想要显示不同的图像时,最后一个背景图像出现在每个盒子上。我正在使用的代码是
<?php
$feild_set = get_all_feilds();
while($feild = mysql_fetch_array($feild_set)) {
$url = $feild['background_image_url'];
echo "<style>
.box {
width: 300px ;
height: 100px;
background-image: $url;
background-visibility: visible;
border: 1px #00FF33;
margin-bottom: 10px;
display: inline-table;
margin-right: 10px;
}
</style>";
echo "<div class=\"box\">";
echo "<a href=\"content.php?feild=" . $feild['id'] . "\" ><block_holder>{$feild['menu_name']}</block_holder></a>";
echo "</div>";
}
?>
提前完成
答案 0 :(得分:5)
试试这个:
<?php
echo "
<style>
.box {
width: 300px ;
height: 100px;
background-visibility: visible;
border: 1px #00FF33;
margin-bottom: 10px;
display: inline-table;
margin-right: 10px;
}
</style>";
$field_set = get_all_feilds();
while ($field = mysql_fetch_assoc($field_set)) {
echo '
<div class="box" style="background-image:'.htmlspecialchars($field['background_image_url']).';">
<a href="content.php?feild='.htmlspecialchars($field['id']).'">
<block_holder>'.htmlspecialchars($field['menu_name']).'</block_holder>
</a>
</div>';
}
?>
我做了什么?
.box
CSS类的声明,因此只输出一次mysql_fetch_array()
更改为mysql_fetch_assoc()
,因为它不那么混乱,效率更高background-image:
类.box
属性
background-image:
属性添加了style=
属性,并在url()
htmlspecialchars()
传递数据feild
到field
的拼写,可以在不破坏其余代码的情况下完成实际上,您的CSS .box
类被多次声明。由于 C SS的级联性质,只会使用上一个声明中使用的值 - 属性的每个声明都会覆盖最后一个,这就是您只看到最后一个图像的原因。您也不需要多次声明这些细节 - 类的整个想法是您可以声明它一次并多次使用它。如果您需要特定于元素的属性,请使用ID或内联样式(最好使用ID,但为简单起见,我在此处使用了内联样式)。