2010-09-24 79 views

回答

2

也许这:

<UL> 
    <LI CLASS="image"> 
    <IMG SRC="..." /> 
    </LI> 
    <LI CLASS="image"> 
    <IMG SRC="..." /> 
    </LI> 
    <LI CLASS="image"> 
    <IMG SRC="..." /> 
    </LI> 
</UL> 

有了这个CSS:

.image { 
    display: inline; 
} 
+0

请注意,这将自动调整图像的数量以适应您的宽度,因此您不需要硬编码多个列。 – 2010-09-24 21:22:51

+0

哎呀,我的标签倒退了,是固定的。 – 2010-09-24 21:24:00

+0

不知道为什么这得到了downvoted,这是它如何工作的一个例子,请注意你可以动态调整大小和列调整匹配 - 你不会得到与表或强制换行符:http:// howansky。 org/stackoverflow/3791019.html – 2010-09-24 21:37:25

0

这真的不是那么难,你只需要PHP输出表的HTML。

这里有一个简单的例子:

$imagenum=0; 
echo "<table>"; 
while($imagenum < $maximages){ 
    echo "<tr>"; 
    for ($i = 0; $i < 4; $i += 1) { 
    echo "<td>"; 
    if($imagenum < $maximages){ 
    echo "<img src='"; 
    echo get_url_of_my_image($imagenum); 
    echo "' >"; 
    } 
    echo "</td>"; 
    $image+=1; 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 
+0

感谢,是一个thier办法做到这一点,而不使用表 – getaway 2010-09-24 21:19:50

+0

@Fanis答案这样做的; ) – 2010-09-24 21:21:56

0

显示图像是使用HTML <img>标签的事,你可以用,当你显示的X图像,所以你可以关闭该modulo operator%知道现有的行并打开一个新的行。

$images ; //array of image urls 
$countImages = count($images) ; 

$imagesPerRow = 5 ; 

for ($i = 0 ; $i < $countImages; $i++) { 
    //display image here 
    $image = $images[$i] ; 
    echo "<img src='$image'>" ; 

    if ($i % $imagesPerRow == 0) { 
     //have displayed an entire row 
     echo '<br>' ; 
    } 
} 

Modulo返回除法的其余部分。所以,让我们说你想要5行图像。如果$ i恰好除以5,则余数将为0,这意味着已显示5张图像,因此需要新的一行。

+0

我爱你的答案,谢谢,每行5图像正是我想要的也是哈哈:))但如何,如果我只有一个4行显示,所以基本上20个图像!谢谢 – getaway 2010-09-24 21:41:59

+0

@getaway如果你只想显示4行5个图像,你只能从数据库中获得20个图像,或者如果你不能限制这些图像,循环只能达到20(假设你有很多图像) – Fanis 2010-09-24 22:12:21

+0

@getaway我建议你看看Alex Howansky的回答。显示屏更流畅。你只需要计算你希望它们出现的宽度,然后html将决定放入多少。然后,如果你调整浏览器的大小,它会相应减少或者减少。 – Fanis 2010-09-24 22:16:45