从下图中,您可以看到第二行(红色矩形)中有一个空白区域,右侧应该填满空白区域。发生这种情况是因为第一个图像标题比其他标题更长。
我知道通过使用HTML代码,我可以使用clear: both;
并放在第一行下来解决它。但我的信息是从数据库中读取的。以下是我的php和mysql代码,我简化了它,请忽略我用来显示图像的方法。
$selectSQL="SELECT *, DATE_FORMAT(published_date,'%d %M %Y') AS eventDate FROM media";
while($rows=mysql_fetch_array($selectSQL)){
<div style="float:left">
<img src="load_image.php?id=<?php echo $rows["id"]; ?>" width="150px" height="212px">
<div><?php echo $rows["title"]; ?></div>]
<div><?php echo $rows["eventDate"]; ?></div>
</div>
}
我有一个解决方案,它比较了element = 5的数量。类似下面的代码。但我不确定如何检查它的元素数量。如果您有其他解决方案,请建议或建议我。谢谢!
if($num_element==5){
echo '<div class="clear"></div>';
}
答案 0 :(得分:1)
$ i = 0;
while($rows=mysql_fetch_array($selectSQL)){
<div style="float:left">
<img src="load_image.php?id=<?php echo $rows["id"]; ?>" width="150px" height="212px">
<div><?php echo $rows["title"]; ?></div>]
<div><?php echo $rows["eventDate"]; ?></div>
</div>
$i++;
if($i % 5 == 0){
echo '<div class="clear"></div>';
}
}
您可以尝试使用此代码来检查完全显示的项目数量,在5个元素之后它将打印出明确的div
答案 1 :(得分:1)
当标题很长时,您可以使用substr()
来标题。你可以这样试试:
while($rows=mysql_fetch_array($selectSQL)){
<div style="float:left">
<img src="load_image.php?id=<?php echo $rows["id"]; ?>" width="150px" height="212px">
<div title="<?php echo $rows["title"];?>">
<?php if(strlen($rows["title"]) > 6){
echo substr($rows["title"],0, 6).'...';
}else{
echo $rows["title"];
} ?>
</div>
<div><?php echo $rows["eventDate"]; ?></div>
</div>
}
使用此代码,您可以自定义标题中单词的长度。