2010-01-22 11 views

Répondre

2

Avez boucle Smarty à travers le réseau deux fois, en utilisant le « pas » modificateur de sauter tous-autre entrée:

<ul> 
{section name=index loop=$myList start=0 step=2}<li>{$myList[index]}</li>{/section} 
</ul> 
<ul> 
{section name=index loop=$myList start=1 step=2}<li>{$myList[index]}</li>{/section} 
</ul> 

moissonneuse-batteuse avec le CSS display:block; width:50px; ou display:inline-block (bien que prennent en charge tous les navigateurs " inline-block ") et vous devriez obtenir l'apparence que vous souhaitez.

+0

ok merci pour votre réponse c'est très utile. –

0

AFAIR ni HTML/CSS, ni d Smarty Il ne fournit aucune fonction pour gérer ce type de mise en page, donc je crains que vous deviez créer des listes n/2 et que chaque liste devra être affichée comme un élément inline-block (CSS: display: inline-block;).

$myList = array(1, 2, 3, 4, 5, 6); 
$listsCount = ceil(count($myList)/2); 

for ($i = 0; $i < $listsCount; ++$i) { 
    echo 'UL'; 
    for ($j = $i * 2; $j < $i * 2 + 2; ++$j) { 
    echo 'LI ' . $myList[$j] . '/LI'; 
    } 
    echo '/UL'; 
} 
+0

Pas sûr que votre code fasse ce que vous pensez qu'il fait ... Votre code génère trois ULs, et si vous utilisez le bloc inline pour empiler horizontalement les LI, vous obtiendrez "1 2" sur la première ligne, "3 4 "sur le prochain, et" 5 6 "sur le troisième, en faisant une liste verticale, plutôt que horizontale. – MidnightLightning