Как вместить любое кол-во блоков в фиксированном родительском блоке ?

Собственно возникла такая ситуация, что нужно вместить любое-вол во блоков в 1 блоке фиксированной длины.
Тоесть:

К примеру у нас есть блок box:

.box {
    width:500px;
    height:80px;
    padding:20px;
    border:solid 1px red;
    overflow: hidden;
}


Внутрь него нужно вместить любое кол-во блоков c
.c {
    width:100px;
    height:80px;
    border:solid 1px blue;
    display: inline-block;
}


К примеру есть у нас блоков с от 1 до 4, то все прекрасно влезают. Если блок не влезать нужно как-то подвинуть все блоки кроме первого влево на недостающее кол-во пикселей.

К примеру 3 блока влезают:
<div class="box">
    <div class="c"></div>
    <div class="c"></div>
    <div class="c"></div>
</div>


К примеру 7 блоков не влезает:
<div class="box">
    <div class="c"></div>
    <div class="c" style="margin-left:-28px;"></div>
    <div class="c" style="margin-left:-28px;"></div>
    <div class="c" style="margin-left:-28px;"></div>
    <div class="c" style="margin-left:-28px;"></div>
    <div class="c" style="margin-left:-28px;"></div>
</div>


Подскажите пожалуйста как вообще этом можно оформить и как высчитать правильный margin-left?
  • Вопрос задан
  • 2656 просмотров
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
jsfiddle.net/R9uq7/3

Скрипт все делает сам, если учесть, что по высоте блоки влезают.
У Вас - нельзя использовать inline-block, в этом случае появляется пробел между блоками. Не заметив этого сразу, я не мог понять, где моя ошибка. Что касается поправки (в коде я вычитаю 0.01) - насколько я понял, эта ошибка возникает из-за округления. Но с этой поправкой работает отлично, и на верстке она не видна.

Вот красивый пример )
jsfiddle.net/R9uq7/4
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Таблицей делайте, а не дивами.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы