【问题标题】:foreach loop image display horizontalforeach 循环图像显示水平
【发布时间】:2013-12-15 01:00:22
【问题描述】:

我刚才有一个关于这个脚本的问题,现在我又回来了,因为它是垂直显示的。

基本上,我想做的是每行显示三张照片,所以会有两排 3 张图片,总共 6 张图片。

<div class="4u">
  <article class="item"  style="float: left;">
    <?PHP foreach($photoData->data as $img){
    echo '<a href="'.$img->link.'?intent=like" target="_blank"><img src="'.$img->images->thumbnail->url.'"/></a>';
    echo '<header>'.$img->caption->text.'</header>';}
    ?>
  </article>
</div>

我正在构建的程序是一个 Instagram 抓取器,它可以从 Instagram 抓取我最近的 6 张照片,并且可以正常工作,但输出如下:http://i.stack.imgur.com/xgTBW.png 现在,很明显我缩小了,因为我想向你展示所有的图像。 我试过float: left,还是不行。

有人有什么想法吗?我很想得到帮助。谢谢你。 :)

这是一个 JSFiddle 我希望它如何去 http://jsfiddle.net/GZb8A/

【问题讨论】:

  • 添加一个计数器和 if 语句。如果 count 达到 3,添加一个
    并将计数器重置为 0 或 1,但是你想开始
  • 尝试发布你的 CSS,如果可能的话,创建一个JSFiddle
  • LJ,你知道我会怎么做吗?抱歉,我是 PHP 新手。迈克,我现在就着手处理。
  • Mike, jsfiddle.net/GZb8A 显然,它在网站上看起来更好,但这是一个快速模型。

标签: php html css foreach instagram


【解决方案1】:

使用换行符&lt;br&gt; 移动到新行,执行以下操作:

<article class="item"> // no styles

<?php
$column_count = 0;
foreach($photoData->data as $img) {
    $column_count++;

    // adjust width and height in styles to suit your content better
    <div class="instagram_item" style="width:200px; height:225px; text-align:center; display:inline-block; margin:0 10px 10px 0;">

        echo '<a href="'.$img->link.'?intent=like" target="_blank">';
            echo '<img src="'.$img->images->thumbnail->url.'"/>';
        echo '</a>';
        echo '<header>'.$img->caption->text.'</header>';

    </div>

    if ($column_count == 3) {
        $column_count = 0;
        echo '<br>';
    }
}
?>

</article>

【讨论】:

  • 这个和我的一样:)呵呵
  • @LJ-C 同时发,不错!
  • 我注意到 Cody 使用的是 HTML5 中的元素,所以我使用了 &lt;br&gt; 而不是 &lt;br/&gt; - 这并没有太大区别 - 我只是在炫耀 [自鸣得意] :)跨度>
  • @CodyLeeK。不错的一个,其余的祝你好运。请帮我删除所有上述cmets。我也会这样做。扩展的 cmets 不受欢迎:)
【解决方案2】:
<?PHP 
$counter = 0;
foreach($photoData->data as $img){
$counter++;
echo '<a href="'.$img->link.'?intent=like" target="_blank"><img src="'.$img->images->thumbnail->url.'"/></a>';
echo '<header>'.$img->caption->text.'</header>';
if ($counter == 3){
    echo "<br/>";
    $counter = 0;}
}?>

这应该可以工作

【讨论】:

  • 这只是在第一组图像下显示相同的6张图像。 :l 没关系,修好了。
  • 如果您也想在该类别下使用 Ignacio Ocampo 解决方案,请在底部使用
【解决方案3】:

您可以在 foreach 语句中关闭和打开您的标签,例如:

<article class="item"  style="float: left;">
<?php
$count = 0;
foreach($photoData->data as $img) {
 $count++;
 echo '<a href="'.$img->link.'?intent=like" target="_blank"><img src="'.$img->images->thumbnail->url.'"/></a>';
 echo '<header>'.$img->caption->text.'</header>';
 if(count>3) {
  // close and open article
  ?>
  </article>
  <article class="item"  style="float: left;">
  <?php
  $count = 0; //Reset count to 0 edited by LJ_C
 }
}
?>
</article>

【讨论】:

  • 您的计数器已关闭,在第二轮您的计数器将在第一次运行时计数 = 2,您需要将其设置为 0
猜你喜欢
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
  • 2011-08-24
  • 2021-01-18
相关资源
最近更新 更多