2010-01-22 2 views

ответ

2

Есть Smarty цикл через массив в два раза, используя «шаг» модификатор, чтобы пропустить все-другую запись:

<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> 

Объединить, что с помощью CSS display:block; width:50px; или display:inline-block (хотя не все браузеры поддерживают " inline-block "), и вы должны получить внешний вид, который вам нужен.

+0

ok thanx для вашего ответа очень полезно. –

0

AFAIR ни HTML/CSS, ни Smarty д oesn't не предоставляет никаких функций для работы с таким макетом, поэтому я боюсь, что вам нужно будет создать n/2 списка, и каждый список должен отображаться как элемент 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

Не уверен, что ваш код делает то, что вы думаете, что он делает ... В вашем коде генерируются три UL, и если вы используете встроенный блок для стека LI по горизонтали, вы получите «1 2» в первой строке, «3 4 «на следующем и« 5 6 »на третьем, делая вертикальный список, а не горизонтальный. – MidnightLightning

 Смежные вопросы

  • Нет связанных вопросов^_^