je veux à la liste des enregistrements au format suivant dans la page modèle SmartyComment puis-je faire le style d'enregistrement au format suivant dans le modèle Smarty
1 3 5 ...
2 4 6 ...
il devrait y avoir le ul
li 1
dans ce format
je veux à la liste des enregistrements au format suivant dans la page modèle SmartyComment puis-je faire le style d'enregistrement au format suivant dans le modèle Smarty
1 3 5 ...
2 4 6 ...
il devrait y avoir le ul
li 1
dans ce format
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.
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';
}
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
ok merci pour votre réponse c'est très utile. –