2016-01-16 126 views
2

我使用float:left水平循環div,它以它應該的方式工作,但問題在於每個div都有一個受其內容所影響的獨特高度,所以當瀏覽器重新啓動時,結果可能會顯得雜亂無章大小。我想讓php循環一次,休息一下,然後開始一個新行,這樣無論瀏覽器的大小如何,它看起來都是一樣的。我該如何製作這個循環一次,破解然後繼續循環?

如果它還不是很明顯,我不擅長php,並拼命拼湊我所擁有的東西。

<?php 
$url = "XML.php"; 
$xml = simplexml_load_file($url); 
$namespaces = $xml->getNamespaces(true); // get namespaces 
for($i = 0; $i < 10; $i++){ 

    $poster = $xml->channel->item[$i]->children($namespaces['x'])->poster; 
    $html .= "<div class='wrapper' style='float:left;'>$poster</div>";} 

echo $html; 
?> 
+1

你可以有一個條件'if(i == 0){continue;}''continue'只需在循環中跳過一個迭代。 – Cyval

+1

非常感謝您的工作! – Jerome

回答

0

如果我理解你想和我這裏的信息是什麼就是什麼,我建議:

你的循環是好的。因此,讓我們說你希望它看起來與頁面大小相同。例如:你想每行5格。你可以使用CSS來做到這一點。

你總共有10個div,所以你需要2行。

添加到您的循環:

if($i = 5){ 
$html .= "<div class='wrapper' style='float:left;clear:right;'>$poster</div>";} 
} 
else{ 
$html .= "<div class='wrapper' style='float:left'>$poster</div>";} 
} 

這是很基本的,在clear:right; CSS語句將阻止任何其他分區去第五div的右側,因此將啓動一個新行;

您應該也可以在您的css中添加display:inline-block;

如果這個心不是工作,你所希望的方式,在另一個選項是TA做一個DIV中的每一行與同類型的,如果條件

爲例:

html.= '<div class="row">'; // start the row here 
if($i = 5){ 
// You might want to use another increment to keep track of the row 
// because in this case you would only make 2 rows. 
    $html .= '</div><div class="row">'; // end the first row and start a new one 
    } 
    else{ 
    // we do nothing 
    } 
html.= '</div>'; //end the row here 

你可能想使用第二個增量跳過五,所以用一點墊,你可以使類似

之後,你只需要調整CSS行類。

+0

非常感謝您的工作! – Jerome

+0

將其標記爲已回答的plz – MadeInDreams