Поплавок влево и вправо
эта проблема беспокоила меня в течение некоторого времени. Поэтому я создал некоторые визуальные описания моей проблемы.
Сначала вот моя структура 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]()
Ответы
Ответ 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;}