Как разместить контент в три колонки?

seosniks
На сайте с 13.08.2007
Offline
389
5616

Добрый вечер форумчане.

Скажите пожалуйста как разместить данные из базы данных в

3 колонки

имеем переменную

которая в цикле отдает данные в переменную

цикл {


$content .="Здесь выводиться контент";
}

так вот мне надо чтоб размещались новости так

новость 1 новость 2 новость 3

новость 4 новость 5 новость 6.

И самое главное чтоб каждая новость тянулась в низ

в ширину текст переносился ниже а не растягиал колонку.

Просто сделать три колонки можно примерно так

http://techmeat.net/exemple/2column_v2/index.html
ixRock
На сайте с 14.11.2006
Offline
46
#1

выводите при помощи таблицы...

примерно так:


$counter = 0;
echo '<table><tr>';
foreach($contents as $value) {
echo "<td>$value</td>";
if( ++$counter % 3 == 0 ) echo '</tr><tr>';
}
echo '</tr></table>';

примерно так.. ^_^

если нужно на дивах сделать, то смысл такой же, палить остаток от деления на нужное число колонок и выводить элемент новой строки..

Работаю [S]за еду и секас[/S] с XHTML, CSS, XSLT, JS, PHP. Если что, вот тут (http://www.mintdesign.ru/) некоторые мои работы. Контакты: ася 344-ноль86-276, мыло ixrock@gmail.com
seosniks
На сайте с 13.08.2007
Offline
389
#2
ixRock:
выводите при помощи таблицы...
примерно так:

$counter = 0;
echo '<table><tr>';
foreach($contents as $value) {
echo "<td>$value</td>";
if( ++$counter % 3 == 0 ) echo '</tr><tr>';
}
echo '</tr></table>';


примерно так.. ^_^
если нужно на дивах сделать, то смысл такой же, палить остаток от деления на нужное число колонок и выводить элемент новой строки..

ixRock, спасибо за подсказку. А как это сделать с помощью div или не получиться.?

Я пробовал не вышло.

ixRock
На сайте с 14.11.2006
Offline
46
#3

как конкретно пробовали? код в студию)

надо чтобы у дивов была резиновая ширина колонок?

seosniks
На сайте с 13.08.2007
Offline
389
#4
ixRock:
как конкретно пробовали? код в студию)
надо чтобы у дивов была резиновая ширина колонок?

Надо чтоб div в высоту только тянулся

в ширину не менялся.

А у меня текст вылазит за пределы колонок.

Возможно надо просто напросто переделать шаблон под табличкую верстку.

Для меня это проще, в дивах вообще не понимаю.

dma84
На сайте с 21.04.2009
Offline
168
#5

Я бы сделал иначе: во-первых, скорее всего тексты новостей разной длины, представьте картину, одна новость 1000 символов другая 100 (типа "С новым годом, парам пам пам"), получится что первый див (первая колонка) растянется в высоту, скажем на 200 пикселей, второй будет по высоте таким же, но пустым на 90%, не красиво.

Выход: делаем все дивы одинаковой высоты (и ширины соответственно), ставим overflow:hidden(auto - если нужна прокрутка);float:left, сами новости режем скриптом, скажем, по 300 знаков или (вот тут я не помню, но это уже где-то обсуждалось, по моему даже на серче) ставим css свойство, которое автоматом ставит троеточие если текст не умещается в элемент, внизу дива ставим, ну допустим, span (отбиваем его по нижней части дива), а в нём ссылку подробнее.

И не нужно никаких мудрёных циклов клепать, дивы сами будут выстраиваться в 3-4-5 колонок, в зависимости от ширины самих дивов и их родителя

Vamerah
На сайте с 19.08.2008
Offline
37
#6

Обрезанные новости и новости с полосой прокруткой мне кажется будет смотреться не очень.

seosniks, с какой стороны у вас текст вылазит?

Предполагаю, что у вас еще колонки сьезжают. Если так, то нужно после вывода нужного числа колонок ставить блок

<div style="clear:both"></div>
Шью тапки для буржуев.
Avenger
На сайте с 22.07.2007
Offline
47
#7

делаем список


<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>

для <li> выставляем ширину в 30%, между <li> выставляем отступы в 5% (margin-right:5%), последний отступ (третий) обрезаем с помощью отрицательного маржина для <ul> равному тем же 5%. вот и все, все само будет переноситься на следующую строку, по 3 столбца в строке

С уважением, Андрей Головнев (http://golovnev.by/)
Ghost Bear
На сайте с 01.07.2009
Offline
28
#8

Хорошие дивные верстки можно взять тут: http://www.intensivstation.ch/en/templates/ Там есть тянущиеся, не тянущиеся - в общем почти все, что можно придумать. Возможно ТС найдёт, что ищет.

Пишу продвинутый веб-софт и автоматизирую сео-задачи на партнёрских условиях. Ваша тема + Мой код = Совместный успех. Велком в ЛС.
seosniks
На сайте с 13.08.2007
Offline
389
#9
Avenger:
делаем список

<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>

для <li> выставляем ширину в 30%, между <li> выставляем отступы в 5% (margin-right:5%), последний отступ (третий) обрезаем с помощью отрицательного маржина для <ul> равному тем же 5%. вот и все, все само будет переноситься на следующую строку, по 3 столбца в строке

Через <li></li> делал три колонки но там видать верстка самого шаблона кривая.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий