Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: несколько div рядом
 
 автор: Spenser   (21.07.2010 в 12:41)   письмо автору
 
 

Здравствуйте.
Помогите организовать следующую вещь:

<div id="main">
    <div style="width: 200px;" id="box"></div>
    <div style="width: 200px;" id="box"></div>
    <div style="width: 200px;" id="box"></div>
</div>


"main" растянута на всю ширину страницы, количество "box" неизвестно, т.е. N штук, должны быть в одну строку, насколько позволяет страница, остальные переносятся на следующую строку и т.д.. Как сделать чтобы BOX были равномерно распределены по ширине в MAIN?

  Ответить  
 
 автор: Fratyr   (21.07.2010 в 12:57)   письмо автору
 
   для: Spenser   (21.07.2010 в 12:41)
 

Не задавая ширины вложенным дивам, используй в каждом: float: left;

  Ответить  
 
 автор: bishake   (21.07.2010 в 13:00)   письмо автору
 
   для: Spenser   (21.07.2010 в 12:41)
 

>Как сделать чтобы BOX были равномерно распределены по ширине в MAIN?
Полагаю, что вопрос надо задать так: как расположить рядом блоки с фиксированной шириной?

В этом случае, решение следующее:
<style>
   #main div {
      float: left;
   }
</style> 

  Ответить  
 
 автор: Spenser   (21.07.2010 в 13:05)   письмо автору
 
   для: bishake   (21.07.2010 в 13:00)
 

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

сейчас так:

|-------------------------------------MAIN-----------------|
||-----box------||-------box------||------box-------| |
||-----box------||-------box------| |
|-------------------------------------------------------------|

а должно так:

|-------------------------------------MAIN-----------------|
| |-----box------| |-------box------| |------box-------| |
| |-----box------||-------box------| |
|-------------------------------------------------------------|

ширина BOX фиксирована и количество в строке зависит от ширины страницы

вот как такое реализовать я никак не догоню:(

  Ответить  
 
 автор: Usta   (21.07.2010 в 13:27)   письмо автору
 
   для: Spenser   (21.07.2010 в 13:05)
 

Только table.
либо если у вас скрипт определять кол-во элементов в строке и ее делим на 100:
<?
$num 
7;
$width 100/$num
echo 
"<div style='width:".$width."%;'></div>";
?>

  Ответить  
 
 автор: Spenser   (21.07.2010 в 14:57)   письмо автору
 
   для: Usta   (21.07.2010 в 13:27)
 

Так можно, но это будет на фиксированное количество в строке, а хотелось бы на произвольное

  Ответить  
 
 автор: Usta   (21.07.2010 в 15:18)   письмо автору
 
   для: Spenser   (21.07.2010 в 14:57)
 

Почему фиксировано та, 7 это я задал просто для примера, вам суда нужно записать кол-во ваших колонок, если вы конечно используете php код.

  Ответить  
 
 автор: Spenser   (21.07.2010 в 15:46)   письмо автору
 
   для: Usta   (21.07.2010 в 15:18)
 

теперь понял. а как тогда вычислить сколько вложенных дивов получится при данной ширине родительского дива? и если пользователь будет растягивать окно то надо пересчитывать ширину родительского и ширину вложенных дивов?

  Ответить  
 
 автор: Spenser   (21.07.2010 в 15:50)   письмо автору
 
   для: Spenser   (21.07.2010 в 15:46)
 

сейчас у меня так:

<div align="center" style="border: 1px dashed red;display: inline-block;">
{foreach key=key item=categor from=$main_categor name=maincategor}
<div style="width: 200px;border: 1px solid red;float: left;">
    <a href="{$categor.url}" title="{$categor.name}">{$categor.name}</a>
</div>
{/foreach}
</div>


но они выровнены по левой стороне а как по центру или по всему свободному (типа justify)?

  Ответить  
 
 автор: Usta   (21.07.2010 в 15:52)   письмо автору
 
   для: Spenser   (21.07.2010 в 15:46)
 

Смотря как у вас происходит вывод блоков, по рядам или сразу формируется в строку, в любом случае надо знать сколько у вас будит выводится на пунктов в строке.

  Ответить  
 
 автор: bishake   (21.07.2010 в 14:27)   письмо автору
 
   для: Spenser   (21.07.2010 в 13:05)
 

1) надо чтобы они были распределены в родительском равномерно по ширине
2) ширина BOX фиксирована


Вы сами хоть понимаете, как это будет выглядеть?

  Ответить  
 
 автор: Spenser   (21.07.2010 в 14:56)   письмо автору
 
   для: bishake   (21.07.2010 в 14:27)
 

Абсолютно!

сейчас так:

|-------------------------------------MAIN-----------------|
||-----box------||-------box------||------box-------|___|
||-----box------||-------box------|______________|
|-------------------------------------------------------------|

а должно так:

|-------------------------------------MAIN--------------------------|
|__|-----box------|__|-------box------|__|------box-------|__|
|_________|-----box------|__|-------box------|________|
|----------------------------------------------------------------------|

_-это пустое место
ширина BOX фиксирована и количество в строке зависит от ширины страницы

  Ответить  
 
 автор: AlexSol   (21.07.2010 в 20:01)   письмо автору
 
   для: Spenser   (21.07.2010 в 14:56)
 

http://www.artlebedev.ru/tools/technogrette/html/thumbnails-center/

  Ответить  
 
 автор: ddhvvn   (21.07.2010 в 15:12)   письмо автору
 
   для: Spenser   (21.07.2010 в 12:41)
 

display: inline-block

  Ответить  
 
 автор: Spenser   (21.07.2010 в 15:32)   письмо автору
 
   для: ddhvvn   (21.07.2010 в 15:12)
 

это для какого Дива?

у меня сейчас так:

<div align="center" style="border: 1px dashed red;display: inline-block;">
{foreach key=key item=categor from=$main_categor name=maincategor}
<div style="width: 200px;border: 1px solid red;float: left;">
    <a href="{$categor.url}" title="{$categor.name}">{$categor.name}</a>
</div>
{/foreach}
</div>

  Ответить  
 
 автор: ddhvvn   (21.07.2010 в 21:33)   письмо автору
 
   для: Spenser   (21.07.2010 в 15:32)
 

Вы хоть читали об этом свойстве?
В общем, AlexSol уже Вам дал, сходите там все есть

  Ответить  
 
 автор: mihdan   (22.07.2010 в 11:08)   письмо автору
 
   для: Spenser   (21.07.2010 в 12:41)
 

HTML:

<div class="objects"> 
<span class="under">&nbsp;</span> 
    <div class="cell">Ячейка</div>
    <div class="cell">Ячейка</div>
    <div class="cell">Ячейка</div>
    <div class="cell">Ячейка</div>
<span class="under">&nbsp;</span> 
</div>


CSS:

.objects {
    text-align: justify;
    text-justify: newspaper;
}
    .objects .cell {
        border: 1px solid #9DA5D6;        
        width: 156px;
        height: 175px;
        text-align: center;
        display:inline-block;
        display: -moz-inline-box;        
        vertical-align: top;
    }    
    * html .objects .cell {
        display: inline;
    }
    * + html .objects .cell {
        display: inline;
    }        
    .objects .under {
        display:-moz-inline-box;
        display:inline-block;
        width: 100%;
    }


http://unesco.ru/ru/?module=objects&action=list

  Ответить  
 
 автор: ddhvvn   (22.07.2010 в 17:17)   письмо автору
 
   для: mihdan   (22.07.2010 в 11:08)
 

У Токмакова получше будет ИМХО. И нет хаков под ИЕ6,7

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования