Я знаю, как сделать 2 divs плавать бок о бок, просто плавать один влево, а другой вправо.
Но как это сделать с 3 divs или я должен просто использовать таблицы для этой цели?
Я знаю, как сделать 2 divs плавать бок о бок, просто плавать один влево, а другой вправо.
Но как это сделать с 3 divs или я должен просто использовать таблицы для этой цели?
Просто дайте им ширину и float: left;
, вот пример:
<div style="width: 500px;">
<div style="float: left; width: 200px;">Left Stuff</div>
<div style="float: left; width: 100px;">Middle Stuff</div>
<div style="float: left; width: 200px;">Right Stuff</div>
<br style="clear: left;" />
</div>
Современный способ использует CSS3 flexbox.
.container {
display: flex;
}
.container > div {
flex: 1; /*grow*/
}
<div class="container">
<div>Left div</div>
<div>Middle div</div>
<div>Right div</div>
</div>
Точно так же, как и для двух div, просто плавайте третью влево или вправо тоже.
<style>
.left{float:left; width:33%;}
</style>
<div class="left">...</div>
<div class="left">...</div>
<div class="left">...</div>
поместить их все слева
убедитесь, что указана ширина, которую они могут поместить в свой контейнер (либо другой div, либо окно), в противном случае они обернут
<br style="clear: left;" />
этот код, который кто-то отправил туда, сделал это трюк!!! когда я вставляю его непосредственно перед закрытием контейнера DIV, он помогает очистить все последующие DIV от перекрытия с DIV, которые я создал бок о бок вверху!
<div>
<div class="left"></div>
<div class="left"></div>
...
...
<div class="left"></div>
<!-- then magic trick comes here -->
<br style="clear: left;" />
</div>
tadaa!!:)
Поплавьте все три div влево. Как здесь:
.first-div {
width:370px;
height:150px;
float:left;
background-color:pink;
}
.second-div {
width:370px;
height:150px;
float:left;
background-color:blue;
}
.third-div {
width:370px;
height:150px;
float:left;
background-color:purple;
}
Я обычно просто плаваю первый влево, второй - вправо. Третий автоматически выравнивается между ними.
<div style="float: left;">Column 1</div>
<div style="float: right;">Column 3</div>
<div>Column 2</div>
вы можете плавать: оставить для всех и установить ширину до 33.333%
попробуйте добавить "display: block" в стиль
<style>
.left{
display: block;
float:left;
width:33%;
}
</style>
<div class="left">...</div>
<div class="left">...</div>
<div class="left">...</div>
<style>
.left-column
{
float:left;
width:30%;
background-color:red;
}
.right-column
{
float:right;
width:30%;
background-color:green;
}
.center-column
{
margin:auto;
width:30%;
background-color:blue;
}
</style>
<div id="container">
<section class="left-column">THIS IS COLUMN 1 LEFT</section>
<section class="right-column">THIS IS COLUMN 3 RIGHT</section>
<section class="center-column">THIS IS COLUMN 2 CENTER</section>
</div>
Преимущество этого способа заключается в том, что вы можете установить каждую ширину столбца независимо друг от друга, если вы держите ее под 100%, если вы используете 3 x 30%, остальные 10% разделяются на 5% разделительное пространство между collumns
Я предпочитаю этот метод, float плохо поддерживается в более старых версиях IE (действительно?...)
.column-left{ position:absolute; left: 0px; width: 33.3%; background: red; }
.column-right{position:absolute; left:66.6%; width: 33.3%; background: green; }
.column-center{ position:absolute; left:33.3%; width: 33.3%; background: yellow; }
ОБНОВЛЕНО: Конечно, чтобы использовать эту технику, и из-за абсолютного позиционирования вам нужно заключить divs в контейнер и выполнить постобработку, чтобы определить высоту if, что-то вроде этого:
jQuery(document).ready(function(){
jQuery('.main').height( Math.max (
jQuery('.column-left').height(),
jQuery('.column-right').height(),
jQuery('.column-center').height())
);
});
Не самая удивительная вещь в мире, но по крайней мере не ломается на старых IE.
Поплавьте каждый div и установите clear, как для строки. Не нужно устанавливать ширину, если вы этого не хотите. Работает в Chrome 41, Firefox 37, IE 11
<div class="stack">
<div class="row">
<div class="col">
One
</div>
<div class="col">
Two
</div>
</div>
<div class="row">
<div class="col">
One
</div>
<div class="col">
Two
</div>
<div class="col">
Three
</div>
</div>
</div>
.stack .row {
clear:both;
}
.stack .row .col {
float:left;
border:1px solid;
}
Я не видел ответ на загрузку, поэтому для чего он стоит:
<div class="col-xs-4">Left Div</div>
<div class="col-xs-4">Middle Div</div>
<div class="col-xs-4">Right Div</div>
<br style="clear: both;" />
пусть Bootstrap вычисляет проценты. Мне нравится очищать оба, на всякий случай.
Вот как мне удалось сделать что-то подобное этому внутри элемента <footer>
:
<div class="content-wrapper">
<div style="float:left">
<p>© 2012 - @DateTime.Now.Year @Localization.ClientName</p>
</div>
<div style="float:right">
<p>@Localization.DevelopedBy <a href="http://leniel.net" target="_blank">Leniel Macaferi</a></p>
</div>
<div style="text-align:center;">
<p>☎ (24) 3347-3110 | (24) 8119-1085 ✉ @Html.ActionLink(Localization.Contact, MVC.Home.ActionNames.Contact, MVC.Home.Name)</p>
</div>
</div>
CSS
.content-wrapper
{
margin: 0 auto;
max-width: 1216px;
}
@Leniel этот метод хорош, но вам нужно добавить ширину ко всем плавающим div. Я бы сказал, сделать их равной ширины или назначить фиксированную ширину. Что-то вроде
.content-wrapper > div { width:33.3%; }
вы можете назначать имена классов для каждого div, а не добавлять inline style
, что не является хорошей практикой.
Обязательно используйте clearfix div или очистить div, чтобы избежать следования содержимого ниже этих div.
Вы можете найти информацию о том, как использовать clearfix div здесь