2つのdivを並べてフロートさせる方法を知っています。1つを左に、もう1つを右にフロートします。
しかし、3つのdivでこれを行う方法や、この目的のためにテーブルを使用する必要がありますか?
display: inline-block
それらを浮かすのではなく、それらの人たちにしたいと思います。それらの幅が合計でコンテナの幅よりも小さい場合、それらは互いに隣り合って配置されます。
2つのdivを並べてフロートさせる方法を知っています。1つを左に、もう1つを右にフロートします。
しかし、3つのdivでこれを行う方法や、この目的のためにテーブルを使用する必要がありますか?
display: inline-block
それらを浮かすのではなく、それらの人たちにしたいと思います。それらの幅が合計でコンテナの幅よりも小さい場合、それらは互いに隣り合って配置されます。
回答:
ちょうどそれらに幅を与えて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>
<br style="clear: left;" />
特にそのスタイルで使用する理由について詳しく教えてください。
最新の方法はCSSフレックスボックスを使用することです。サポート表を参照してください。
.container {
display: flex;
}
.container > div {
flex: 1; /*grow*/
}
<div class="container">
<div>Left div</div>
<div>Middle div</div>
<div>Right div</div>
</div>
CSSグリッドを使用することもできます。サポートテーブルを参照してください。
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr; /* fraction*/
}
<div class="container">
<div>Left div</div>
<div>Middle div</div>
<div>Right div</div>
</div>
2つのdivの場合と同じですが、3番目のdivを左または右にフロートします。
<style>
.left{float:left; width:33%;}
</style>
<div class="left">...</div>
<div class="left">...</div>
<div class="left">...</div>
3つの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;
}
私は通常、1つ目を左に、2つ目を右にフロートさせます。3番目は自動的にそれらの間で整列します。
<div style="float: left;">Column 1</div>
<div style="float: right;">Column 3</div>
<div>Column 2</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%未満に保つ限り、各列の幅を互いに独立して設定できることです。3x 30%を使用する場合、残りの10%は列間の5%の分割スペースとして分割されます。
あなたはフローティングすることができます:それらすべてのために残し、幅を33.333%に設定します
私はブートストラップの答えを見なかったので、それは何の価値があるのですか?
<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にパーセンテージを計算させます。念のため、両方をクリアしたい。
私はこの方法を好んでいます、フロートは古いバージョンの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; }
更新:もちろん、この手法を使用するには、絶対配置のため、コンテナーにdivを囲み、ifの高さを定義するために次のような後処理を行う必要があります。
jQuery(document).ready(function(){
jQuery('.main').height( Math.max (
jQuery('.column-left').height(),
jQuery('.column-right').height(),
jQuery('.column-center').height())
);
});
世界で最も驚くべきことではありませんが、少なくとも古いIEで壊れることはありません。
各divをフロートし、クリアに設定します。両方とも行に対してです。必要がない場合は、幅を設定する必要はありません。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;
}
これが私が<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%; }
を追加するのinline style
ではなく、各divにクラス名を割り当てることができますが、これは良い方法ではありません。
以下のコンテンツがこれらのdivの下にとどまらないように、必ずclearfix divまたはclear divを使用してください。
clearfix divの使用方法の詳細については、こちらをご覧ください。