2010-03-20 4 views
1

Мой код выглядит примерно так. Когда theres 3 изображения все прекрасно после того, как theres 4 он заполняется и перемещает весь div.top в другую строку. Как заставить div внутри вершины вместо этого запускать новую строку?Как сделать divs переходить в другую строку при заполнении?

Я пробовал писать .top width = 500px, но как только он попадает или пропускает его, вместо изображений внутри сжимаются вместе, а не каждый 150x150. Я попробовал max-width сверху, а в opera и chrome я вижу границу сверху как 500width, но изображения продолжают выдавать ее. (у меня проблема с firefox с моим div, поэтому ширина выглядит привязанной к чему-то еще).

Итак, как мне заставить эти divs перейти в другой ряд? и не пытайтесь сжать вместе

<div class="top"> 
<div><a href><img/></a></div> 
<div><a href><img/></a></div> 
<div><a href><img/></a></div> 
</div> 

ответ

1

Вот решение, которое могло бы помочь (использовал его в моем примере, просто настроить, чтобы соответствовать вашему примеру)

.top { 
    display: block; 
    padding: 0; 
    margin: 0; 
    width: 100%; 
} 

.top div { 
    float: left; 
    display: block; 
    margin-right: 5px; 
    margin-bottom: 10px; 
    width: 47%; /* Not needed, but in my case I needed 2 columns */  
} 

Basicall, то .top divfloat: left; - это то, что делает мои изображения для перехода к следующей строке, если столбцы заполнены.

+0

Первый «display: block;» является избыточным на div, а второй вызывает ошибку IE, который должен быть заменен на «display: inline;» для лучшей практики (без влияния на другие браузеры). Также: смешение полей% width и px также опасно - я бы выбрал тот или другой. –

+0

@ Eric Meyer, сочетающий 'display: inline;' и 'float: left;' не очень хорошо гель, когда используется в IE. Это либо вы используете 1, либо другой. У меня были проблемы со всеми версиями IE при добавлении 2 вместе. И маржа вообще не нужна. Я просто взял свой рабочий CSS, добавив ширину поверх него (для div это было 300 пикселей в моем случае). –

+0

Я не знаю, о чем вы говорите. 'display: inline;' on floats - лучшая практика, исправляющая ошибку, описанную здесь: http://www.positioniseverything.net/explorer/doubled-margin.html - и не имеет абсолютно никаких побочных эффектов. –

3

Мне может понадобиться дополнительная информация здесь, трудно точно сказать, что происходит. Возможно, экранный снимок?

я бы, вероятно, начать с чего-то вроде этого:

.top { 
    width: 500px; 
    overflow: hidden; 
} 

.top div { 
    display: inline; 
    float: left; 
    width: 150px; 
    height: 150px; 
} 
Смежные вопросы