2013-10-01 4 views
1

У меня возникли серьезные проблемы с тем, чтобы заставить вещи плавать влево правильно, или, скорее, получать элементы, чтобы плавать «правда» слева.Свойство CSS float для выравнивания div's

Это мой выходной ток:

current (broken) output

и это то, что я надеюсь достичь:

ideal output

вот jsfiddle, любая помощь будет принята с благодарностью. :)

HTML:

  <div id="content"> 

       <div class="box1"> 
        1 
       </div> 
       <div class="box2"> 
        2 
       </div> 
       <div class="box1"> 
        3 
       </div> 
       <div class="box1"> 
        4 
       </div> 
       <div class="box1"> 
        5 
       </div> 

      </div> 

CSS:

html, body { 
    margin: 0px; 
    padding: 0px; 
} 

a { 
    text-decoration: none; 
} 

#content { 
    margin: 20px 0px 0px 20px; 
    width:180px; 
    background-color: green; 
    overflow: auto; 
    padding-left: 10px; 
} 

.box1 { 
    margin: 10px 10px 0px 0px; 
    background-color: red; 
    position: relative; 
    float: left; 
    height: 50px; 
    width: 50px; 
} 

.box2 { 
    margin: 10px 10px 0px 0px; 
    background-color: blue; 
    position: relative; 
    float: left; 
    height: 110px; 
    width: 50px; 
} 

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

+0

Пожалуйста, используйте summat как jsfiddle. net –

+2

Вы не будете делать это с помощью поплавков. Вероятно, вы захотите посмотреть на систему сетки от Bootstrap или другого провайдера. – isherwood

+0

или (пожалуйста, не бросайте камни) стол? –

ответ

1

Я думаю, что это не может быть сделано только с помощью CSS в данный момент, может быть, в какой-то короткое время, но есть много из javascript решений этого и сделать некоторые исследования я нашел Masonry, который, как я думаю, является самым популярным. Тебе следует это попробовать.

3

Поплавки не могут рассчитывать по интересующим вас темам. Вам нужно больше столбцов.

https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Using_multi-column_layouts

Но вы должны быть осторожны крестик браузера, и они не являются большими в процентах ширины либо (из опыта).

+0

Спасибо, похоже, я собираюсь использовать плагин jQuery под названием [Masonry] (http://masonry.desandro.com/), похоже, делает то, что не плавает. Снова, большое спасибо :) –

+1

К сожалению, многоколоночный макет тоже не работает, см. Http://jsfiddle.net/fWK2A/5/ –

2

я получил что-то похожее на то, что вы хотите

Fiddle

.box5 { 
    margin: 10px 10px 0px 0px; 
    background-color: red; 
    position:absolute; 
    float: right; 
    height: 50px; 
    width: 50px; 
    float:left; 
    left:150px; 
    top:80px; 
} 
+0

Это хорошо работает для макета, который я использовал в качестве примера, и я Спасибо вам за это. Однако причина, по которой я задаю этот вопрос, заключается в том, что я хочу иметь возможность создавать множество разных типов ящиков и заполнять их страницей (потенциально сотни из них) в соответствии со случайным числовым значением. В идеале они также будут перемещаться по мере изменения размера страницы. –

+0

@CameronGuthrie, если вы найдете правильный ответ, пожалуйста, отметьте его. Спасибо. – vishalkin

0

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

.box4 { 
margin: 10px 10px 0px 0px; 
background-color: red; 
position: relative; 
float:left; 
height: 50px; 
width: 50px; 
margin-top:-50px; 
margin-left:3px; 

}

http://jsfiddle.net/fWK2A/6/embedded/result/

Смежные вопросы