Как вывести блоки в столбик?

Сейчас счет идет так
1 2 3
4 5 6
Надо так:
1 3 5
2 4 6

<?php if ($categories) { ?>
    <div class="list">
    <?php foreach ($categories as $category) { ?>
     <ul>
     <li>             
     <a href="<?php echo $category['href']; ?>">
     <img src="<?php echo $category['thumb']; ?>" title="<?php echo $category['name']; ?>" alt="<?php echo $category['name']; ?>" />
     <span><?php echo $category['name']; ?></span>
     </a>
     </li>
    <div class="clear"></div>
    </div>
    <?php } ?>
    <?php } ?>

Объект тег li
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
alex-saratov
@alex-saratov
Т.к. алгоритм не сильно понятен, но судя по комментариям нужно выводить вертикальными блоками. Не смогу проверить, но примерно так.
И старайтесь правильно задавать вопросы.

<?php if ($categories) : ?>
    <div class="list">
		<ul><li>
		<?php 
		$cols = 2;  // число колонок
		$view = ceil( count($categories) / $cols );
		$counter = 0;
		foreach ($categories as $category) : ?>
			<div>
				<a href="<?php echo $category['href']; ?>">
					<img src="<?php echo $category['thumb']; ?>" title="<?php echo $category['name']; ?>" alt="<?php echo $category['name']; ?>" />
					<span><?php echo $category['name']; ?></span>
				</a>
			</div>
			<?php 
				$counter++;
				if( $counter == $view) { 
					echo "</li><li>";
					$counter = 0;
			?>
		<?php endforeach; ?>
		</li></ul>
    </div>
<?php endif; ?>


Суть кода в создании нужного числа inline колонок, с вертикальным заполнением div--ами. Ну и конечно стоит оформить все это в CSS.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nepritimov_m
@nepritimov_m
Frontend dev.
Первую строчку заполняйте циклом от 1 с шагом 2, вторую - от 2 с шагом 2.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы