これらの2つのdivを並べて取得する方法は?


110

ネストされていない2つのdivがあり、一方が他方の下にあります。どちらも1つの親div内にあり、この親divが繰り返されます。だから本質的に:

<div id='parent_div_1'>
  <div class='child_div_1'></div>
  <div class='child_div_2'></div>
</div>

<div id='parent_div_2'>
  <div class='child_div_1'></div>
  <div class='child_div_2'></div>
</div>

<div id='parent_div_3'>
  <div class='child_div_1'></div>
  <div class='child_div_2'></div>
</div>

私はchild_div_1、それぞれのペアをchild_div_2隣同士にしたいと考えています。これどうやってするの?

回答:


82
#parent_div_1, #parent_div_2, #parent_div_3 {
  width: 100px;
  height: 100px;
  border: 1px solid red;
  margin-right: 10px;
  float: left;
}
.child_div_1 {
  float: left;
  margin-right: 5px;
}

http://jsfiddle.net/c6242/1/で実際の例を確認してください


1
彼は、親ではなく、子供たちのdivを隣同士に揃えたいと思っています(少なくともそれが私の理解でした...)
ehdv

4
私はまだdisplay: table-cell彼の意味に近い結果が得られると思います(それ以降は同じ高さなどになるため)この方法は確実に機能します。
ehdv 2011年

@ehdv display: table-cellはIE6 IE7ではサポートされていません。float:left; これを行う適切な方法です。
フセイン

IE6、7でこれを行う適切な方法は、を使用することです。これは<tr><td>、ユーザーがウィンドウのサイズを変更すると、他のオプションが機能しなくなるためです。最近のブラウザでdisplay: inline-blockは、通常はが最適なオプションです。
John Henckel、2016

126

divはデフォルトでblock要素であるため、使用可能な幅全体を占めるため、使用してみてください-

display:inline-block;

div今すなわち、要素の流れが妨げられることはありませんが、それでもブロック要素として扱われますインラインでレンダリングされます。

このテクニックはfloatsと格闘するよりも簡単だと思います。

詳細については、このチュートリアルを参照してください-http://learnlayout.com/inline-block.html。その記事につながる以前の記事もお勧めします。(いいえ、書きませんでした)


私はこのソリューションが本当に気に入りました。私の唯一の問題は、上部を揃えるのではなく、両方のdivの下部を揃えることです。これにも簡単な設定はありますか?
Chris

div高さが等しい2つのラッパーを使用して、それらの内部のコンテンツが上揃えで表示されるようにすることをお勧めします。
Robin Maben

2
同意する。これはfloat:left、レイアウト全体を再定義することなく、非常に多くのオプションを提供するよりもはるかに優れています。物事はこのように「ただ働く」。ここをチェックしてください:jsfiddle.net/SrAQd/4
Jerry

12
垂直方向の配置を取得するには、「vertical-align:top;」を追加します。
cdiggins 2013年

@Chris:はい、私はcdigginsに同意します。それはあなたを助けるはずです。
Robin Maben 14

44

私は以下のコードが非常に便利であるとわかりました、それはここで検索する人を助けるでしょう

<html>
<body>
    <div style="width: 50%; height: 50%; background-color: green; float:left;">-</div>
    <div style="width: 50%; height: 50%; background-color: blue; float:right;">-</div>
    <div style="width: 100%; height: 50%; background-color: red; clear:both">-</div>
</body>
</html>


11

フレックスボックスを使用すると、非常に簡単です!

#parent_div_1, #parent_div_2, #parent_div_3 {
    display: flex;
}

フィドルの例





2

フレックスボックスの使用

   #parent_div_1{
     display:flex;
     flex-wrap: wrap;
  }
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.