Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите сделать вывод в три колонки..

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
nikoshot
Отправлено: 01 Июля, 2013 - 14:41:58
Post Id


Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




Рябята помогите плиз.....очень нужно....я только начинаю изучать PHP...
Есть неизвестное кол-во строк....оно в каждом раделе разное...
У меня сейчас выводится все в одну колонку...строк более 1000...и мне нужно вывести их
в три колонки...вот часть кода где формируется эта одна колонка (это как я понял по HTML тегам)
PHP:
скопировать код в буфер обмена
  1. <h3><?=$cat?></h3>
  2.                                 <ul>
  3.                             <? foreach ($item as $key => $value) { ?>
  4.                             <li><a title="<?=$value['NAME']?>" href="<?=$value['URL']?>">
  5.                                   <?=$value['NAME']?></a></li>
  6.                             <? } ?>
  7.                             </ul>
  8.  


а это весь код файла...

PHP:
скопировать код в буфер обмена
  1. <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
  2. <h1><?=$arResult['H1']?></h1>
  3. <ul class="tabs" style="margin-left: 5px!important;">
  4.     <? foreach (array_keys($arResult['TABS']) as $key => $value) { ?>
  5.         <li><a href="#<?=str_replace(' ', '_', $value)?>"><?=$value?></a></li>
  6.     <? } ?>
  7. </ul>
  8. <div class="panes" style="border-right: 0; border-left: 0; border-bottom: 0;">
  9.     <? if (count($arResult['TABS'])>0) { ?>
  10.         <? foreach ($arResult['TABS'] as $key => $value) { ?>
  11.             <div class="contentclose" id="brandcatblock">
  12.                 <?
  13.                 $row=1;
  14.                 $i=1;
  15.                 ksort($value);
  16.                 foreach ($value as $cat=>$item) {
  17.                     sort($item);
  18.                     if ($i==1) { ?><div class="firstrow clearfix" id="row<?=$row?>"><? } ?>
  19.                         <div class="brandcategory<? if ($i==2) { ?> nextcol<? } ?>">
  20.                             <?if($cat=='PROP'){$cat='';}?>
  21.                             <h3><?=$cat?></h3>
  22.                                 <ul>
  23.                             <? foreach ($item as $key => $value) { ?>
  24.                             <li><a title="<?=$value['NAME']?>" href="<?=$value['URL']?>">
  25.                                   <?=$value['NAME']?></a></li>
  26.                             <? } ?>
  27.                             </ul>
  28.                         </div>
  29.                     <? if ($i==2) { $i=1; $row++; ?></div><? } else { $i++; }
  30.                 }
  31.                 if ($i==2) {
  32.                     echo '<div class="brandcategory nextcol"></div></div>';
  33.                 }
  34.                 ?>
  35.             </div>
  36.         <? } ?>
  37.     <? } ?>
  38. </div>
 
 Top
VestCoastman
Отправлено: 01 Июля, 2013 - 14:49:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




<div style="float:left; 33%">mytext</div>
 
 Top
kappa
Отправлено: 01 Июля, 2013 - 15:24:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




 
 Top
nikoshot
Отправлено: 01 Июля, 2013 - 15:29:32
Post Id


Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




kappa пишет:
http://csswizardry.com/2010/02/mutiple-column-lists-using-one-ul/

Спс...но мне кажется что это нужно как сделать через выборку масива потом полученное кол делить на три (при этом создаются три колонки)..а дальше голова не варит еще))
 
 Top
DelphinPRO
Отправлено: 01 Июля, 2013 - 17:47:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




CODE (html):
скопировать код в буфер обмена
  1. <ul class="three-columns">
  2.   <li>bla-bla-bla</li>
  3.   <li>bla-bla-bla</li>
  4.   <li>bla-bla-bla</li>
  5.   ... 100500 строк
  6.   <li>bla-bla-bla</li>
  7.   <li>bla-bla-bla</li>
  8.   <li>bla-bla-bla</li>
  9. </ul>


CODE (css):
скопировать код в буфер обмена
  1. .three-columns {
  2.   /* Количество колонок */
  3.   -webkit-column-count : 3;
  4.   -moz-column-count    : 3;
  5.   column-count         : 3;
  6.  
  7.   /* промежуток между колонками */
  8.   -webkit-column-gap   : 30px;
  9.   -moz-column-gap      : 30px;
  10.   column-gap           : 30px;
  11.  
  12.   /* вертикальный разделитель между колонками */
  13.   -webkit-column-rule  : 1px dotted #ccc;
  14.   -moz-column-rule     : 1px dotted #ccc;
  15.   column-rule          : 1px dotted #ccc;
  16. }


supported: IE10+, FF2+, Chrome4+, Safari3.1+, Opera11.1+, iOS, OperaMini, Android

с CSS3 ваша жизнь станет проще Улыбка
ну а те кто ездит на ослах - пусть мучаются Улыбка

(Отредактировано автором: 01 Июля, 2013 - 17:48:19)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
nikoshot
Отправлено: 02 Июля, 2013 - 10:26:44
Post Id


Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




DelphinPRO пишет:


CODE (css):
скопировать код в буфер обмена
  1. .three-columns {
  2.   /* Количество колонок */
  3.   -webkit-column-count : 3;
  4.   -moz-column-count    : 3;
  5.   column-count         : 3;
  6.  
  7.   /* промежуток между колонками */
  8.   -webkit-column-gap   : 30px;
  9.   -moz-column-gap      : 30px;
  10.   column-gap           : 30px;
  11.  
  12.   /* вертикальный разделитель между колонками */
  13.   -webkit-column-rule  : 1px dotted #ccc;
  14.   -moz-column-rule     : 1px dotted #ccc;
  15.   column-rule          : 1px dotted #ccc;
  16. }




Спасибо огромное!Это то что было нужно....
 
 Top
Zerrata
Отправлено: 02 Июля, 2013 - 11:08:33
Post Id



Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




Цитата:
Спасибо огромное!Это то что было нужно....


Пока кто-нибудь не откроет эту страницу в IE (или другом браузере, не поддерживающем CSS 3).

Я бы написала так
PHP:
скопировать код в буфер обмена
  1.  
  2. $i=1; //Это не просто счетчик, а еще и указатель позиции div'а
  3. foreach ():
  4. // выводим по три колонки, значит каждый 4-й div должен становиться первым
  5. if($i == 4) {
  6.     $i=1;
  7.     $style='style="clear:left;float:left;" ';
  8. } else {
  9.     $style='style="float:left;" ';
  10. }
  11. // выводим div'ы
  12. echo '<div '.$style.'>.....</div>';
  13. $i++;
  14. endforeach;
  15.  
 
 Top
DelphinPRO
Отправлено: 02 Июля, 2013 - 12:15:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Zerrata пишет:
Я бы написала так

ну во-первых, у вас получится не три колонки, а ряды по три элемента. чуете разницу?

во-вторых, если вдруг высота первого или второго элемента в ряду будет выше последующих хотя бы на пиксель - всё развалится.
Не говоря уже о том, что clear очистит весь поток, что чревато, если колонки расположены уже внутри макета, построенного на флоатах.

Если уж решать задачу вашим методом (в ряд), то можно сделать проще и надежнее:

CODE (html):
скопировать код в буфер обмена
  1. <ul class="three-columns">
  2.   <li>bla-bla-bla</li>
  3.   <li>bla-bla-bla</li>
  4.   <li>bla-bla-bla</li>
  5.   ... 100500 строк
  6.   <li>bla-bla-bla</li>
  7.   <li>bla-bla-bla</li>
  8.   <li>bla-bla-bla</li>
  9. </ul>


CODE (css):
скопировать код в буфер обмена
  1. .three-columns {
  2.   font-size: 0;
  3. }
  4. .three-columns li {
  5.   display: inline-block;
  6.   vertical-align: top;
  7.   width: 33%;
  8.   font-size: 14px;
  9. }


и не нужно никаких расчетов в php — выводим в один поток.

Zerrata пишет:
Пока кто-нибудь не откроет эту страницу в IE (или другом браузере, не поддерживающем CSS 3).

если посмотреть на список:
DelphinPRO пишет:
supported: IE10+, FF2+, Chrome4+, Safari3.1+, Opera11.1+, iOS, OperaMini, Android

то таких окажется не так уж и много (старые IE и Опера), и поэтому нужно ориентироватся на ТЗ, полученное от заказчика ;)

(Отредактировано автором: 02 Июля, 2013 - 12:16:10)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
armancho7777777 Супермодератор
Отправлено: 02 Июля, 2013 - 12:15:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Zerrata пишет:
Пока кто-нибудь не откроет эту страницу в IE

http://www[dot]xiper[dot]net/collect/js-[dot][dot][dot]ulti-column[dot]html
 
 Top
Zerrata
Отправлено: 02 Июля, 2013 - 12:25:41
Post Id



Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




покусали Радость

Вообще-то я использовала такой подход при рисовании многоколоночных таблиц (ну естественно с подсчетом и выводом недостающих ячеек).

(Отредактировано автором: 02 Июля, 2013 - 12:26:36)

 
 Top
DelphinPRO
Отправлено: 02 Июля, 2013 - 12:36:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Zerrata пишет:
при рисовании многоколоночных таблиц

для таблиц есть замечательный тег <table> ;)


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
nikoshot
Отправлено: 02 Июля, 2013 - 16:42:17
Post Id


Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




Спасибо всем кто принимал участие....проблема решена.....
CSS 3 рулит))) Радость Радость
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB