Подтвердить что ты не робот

Поплавок влево и вправо

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

Сначала вот моя структура HTML У меня есть 6 divs. первые 3 float left и последние 3 float right. На последнем изображении показан результат, который я хочу, но, похоже, не получается. Может кто-то там помочь мне здесь.

EDIT//Извините, мой HTML и CSS

<style>
    .left { float:left; }
    .right { float:right; }
</style>
<div id="container">
   <div class="left"></div>
   <div class="left"></div>
   <div class="left"></div>
   <div class="right"></div>
   <div class="right"></div>
   <div class="right"></div>
</div>

ПРИМЕЧАНИЕ: Я не могу сделать левый правый левый правый левый правый параметр, потому что я получаю свои данные с PHP через запрос в мою базу данных. Первый запрос идет влево, второй запрос идет правильно.... спасибо кучу

/EDIT

This is a mocukup of my HTML structure

Мои поплавки приводят к этому

this is my current result

Это то, что я хочу

I want this

4b9b3361

Ответ 1

Для этого вы можете использовать свойство CSS3 column-count. Напишите вот так:

.parent{
    -moz-column-count: 2;
    -moz-column-gap: 50%;
    -webkit-column-count: 2;
    -webkit-column-gap: 50%;
    column-count: 2;
    column-gap: 50%;
}
.parent div{
    width:50px;
    height:50px;  
    margin:10px;
}
.left{
    background:red;
}
.right{
    background:green;
}

Отметьте http://jsfiddle.net/UaFFP/6/

Ответ 2

Положите один налево, один справа, и сначала дайте понять: оба свойства

<div class="left clear"></div>
<div class="right"></div>
<div class="left clear"></div>
<div class="right"></div>

CSS

.left {float:left}
.right {float:right}
.clear {clear:both}

Пример

Ответ 3

Добавьте первый левый div, затем первый правый div и после него добавьте <br style="clear:both"> и повторите процедуру.

Изменить: здесь обновленный ответ:

<div style="border:1px solid blue;float:right;height:100px;width:100px;clear:right;"></div>
<div style="border:1px solid red;float:left;height:100px;width:100px;clear:left;"></div>
<div style="border:1px solid blue;float:right;height:100px;width:100px;clear:right;"></div>
<div style="border:1px solid red;float:left;height:100px;width:100px;clear:left;"></div>
<div style="border:1px solid blue;float:right;height:100px;width:100px;clear:right;"></div>
<div style="border:1px solid red;float:left;height:100px;width:100px;clear:left;"></div>

Ответ 4

Предположим, что у вас есть другой div в середине. Затем используйте этот хронологический порядок:

<div class="left"></div>
<div class="right"></div>
<div class="content"></div>

Или, если вы этого не сделаете, просто добавьте еще один div, который предоставит ему стиль clear:both.

Ответ 5

<style type="text/css">

.parent {width:50px; border:1px solid red;}

.left {float:left; }

.right{float:right;}

.child{height:50px;width:50px;border:solid 1px green;margin:0 0 10px 0;}

</style>

<body>

<div class="left parent">
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
</div>

<div class="right parent">
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
</div>

</body>

</html>

Разумеется, было бы странно не иметь центральный DIV, если это случай, когда плавающие родительские DIVs остались, например, шириной 20% 60 %20%.

Ответ 6

column-count уже широко поддерживается - http://caniuse.com/#feat=multicolumn Поэтому, если старые браузеры не беспокоят вас, подумайте над его использованием.

Ответ 7

Использование селектора nth-child и очистки после двух разделов:

​div {
    width: 50px;
    height: 50px;
    background-color: red;
    float: left;
}
div:nth-child(2n) {
    background-color: green;
    float: right;
}

Живой пример

В противном случае используйте этот довольно хакерский метод, который не требует дополнительной разметки:

div {
    width: 50px;
    height: 50px;
    background-color: red;
    float: left;
}
div:nth-child(n) {
    clear: both;
}

div:nth-child(2n) {
    background-color: green;
    float: right;
    margin-top: -50px; //match this to the div height
}

Пример в реальном времени

Ответ 8

HTML:

<div class="leftcolums">
    <div class="left">1</div>
    <div class="left">2</div>
    <div class="left">3</div>    
</div>
<div class="rightcolums">
    <div class="right">4</div>
    <div class="right">5</div>
    <div class="right">6</div>
</div>
<div class="clear"></div>

СТИЛИ:

.leftcolums{float:left;}
.rightcolums{float:right;}
.clear{clear:both;}