2016-09-16 10 views
2

3列に異なる高さの6つのdivを配置しようとしています。浮動小数点数を使用して3列のdiv

私は左と右のdivsにはfloatプロパティを使用し、中央のdivはmargin:0のautoを使用します。

clearプロパティを使用して、divの2番目の行を最初の行の下に配置しましたが、divの下に同じfloatオプションを使用してdivの間に空白スペースを入れません。

代わりに、最も低いdivに揃えられます。助けのためのfiddle

div { 
 
    border: 1px solid red; 
 
    width: 30%; 
 
} 
 
.left { 
 
    float: left; 
 
    height: 200px; 
 
} 
 
.right { 
 
    float: right; 
 
    height: 100px; 
 
} 
 
.center { 
 
    margin: 0 auto; 
 
    height: 50px; 
 
}
<div class="left">left-top</div> 
 
<div class="right">right-top</div> 
 
<div class="left" style="clear:left">left-bottom</div> 
 
<div class="right" style="clear:right">right-bottom</div> 
 
<div class="center">center-top</div> 
 
<div class="center">center-bottom</div>

おかげで、

ピエロ:

はここでフィドルです。

+2

あなたがhtmlの順序を変更することはできますか? https://jsfiddle.net/8Lbc5pq7/2/ – DaniP

+1

あなたは本当に(https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout)[柔軟]を使って、自分自身の仕事の多くを割くことができます[box](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)layout – LuudJacobs

+0

各列に2つのブロックを持つ3列レイアウトを作成することもできます。 –

答えて

1

3列あなたが浮く/ div要素33.33パーセントワイドに入れ:

https://jsfiddle.net/8Lbc5pq7/4/

HTML:

<div class="column"> 
<div class="left">left-top</div> 
<div class="left">left-bottom</div> 
</div> 
<div class="column"> 
<div class="center">center-top</div> 
<div class="center">center-bottom</div> 
</div> 
<div class="column"> 
<div class="right">right-top</div> 
<div class="right" style="clear:right">right-bottom</div> 
</div> 

CSS:

div { 
    border: 1px solid red; 
    width: 95%; 
} 
.column { 
    float: left; 
    border: none; 
    width: 33.33%; 
} 

.left { 
    float: left; 
    height: 200px; 
} 

.right { 
    float: right; 
    height: 100px; 
} 

.center { 
    margin: 0 auto; 
    height: 50px; 
} 
+0

素晴らしい解決策!!! ありがとう –

0

は、このスタイルを使用してみてください:

div { 
    border: 1px solid red; 
    width: 30%; 
    display:inline-block; 
} 

.left { 
    float: left; 
    height: 200px; 
} 



.center { 
    margin: 0 auto; 
    height: 50px; 
} 
+0

です。 このソリューションは、左のdivと中央のdivの間のスペースのみを削除します –

2

あなたはこの1つを試すことができます。

HTMLコード

<div class="left">left-top</div> 
<div class="right">right-top</div> 
<div class="left">left-bottom</div> 
<div class="clearfix"></div> 
<div class="right">right-bottom</div> 
<div class="center">center-top</div> 
<div class="center">center-bottom</div> 

CSSコード

.left, .right, .center {border: 1px solid red;width: 30%;margin:2px;} 
.clearfix{clear:both;} 
.left {float:left;} 
.right { float:left;} 
.center {float:left;} 

チェックフィドルhttps://jsfiddle.net/Dhavalr/9cyq8tu9/

0
Please try this code 

<style> 
div { 
    border: 1px solid gray; 
    width: 33.1%; 
} 
.left { 
    float: left; 
    height: 200px; 
} 
.right { 
    float: left; 
    height: 100px; 
} 
.center { 
    margin: 0 auto; 
    float:left; 
    height: 50px; 
} 
</style> 
<div class="left">left-top</div> 
<div class="center">center-top</div> 
<div class="right">right-top</div> 
<div style="clear:both;"></div> 
<div class="left" style="clear:left;">left-bottom</div> 
<div class="center">center-bottom</div> 
<div class="right" style="clear:right;">right-bottom</div> 
関連する問題