オプション1
float:left
両方のdiv
要素で使用し、両方のdiv要素に合計幅を100%として%幅を設定します。
box-sizing: border-box;
フローティングdiv要素で使用します。値border-boxは、パディングとボーダーを拡張するのではなく、幅と高さに強制します。
にclearfixを使用し<div id="wrapper">
て、ラッパーdivを正しい高さにスケーリングするフローティング子要素をクリアします。
.clearfix:after {
content: " ";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
#first, #second{
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
#wrapper {
width: 500px;
border: 1px solid black;
}
#first {
border: 1px solid red;
float:left;
width:50%;
}
#second {
border: 1px solid green;
float:left;
width:50%;
}
http://jsfiddle.net/dqC8t/3381/
オプション2
position:absolute
1つの要素で使用し、他の要素で固定幅を使用します。
<div id="wrapper">
子要素を要素に絶対的に配置するには、position:relativeを要素に追加し<div id="wrapper">
ます。
#wrapper {
width: 500px;
border: 1px solid black;
position:relative;
}
#first {
border: 1px solid red;
width:100px;
}
#second {
border: 1px solid green;
position:absolute;
top:0;
left:100px;
right:0;
}
http://jsfiddle.net/dqC8t/3382/
オプション3
display:inline-block
両方のdiv
要素で使用し、両方のdiv要素に合計幅を100%として%幅を設定します。
そして再び(float:left
例と同じ)box-sizing: border-box;
div要素で使用します。値border-boxは、パディングとボーダーを拡張するのではなく、幅と高さに強制します。
注:インラインブロック要素は、HTMLマークアップのスペースの影響を受けるため、間隔の問題が発生する可能性があります。詳細はこちら:https : //css-tricks.com/fighting-the-space-between-inline-block-elements/
#first, #second{
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
#wrapper {
width: 500px;
border: 1px solid black;
position:relative;
}
#first {
width:50%;
border: 1px solid red;
display:inline-block;
}
#second {
width:50%;
border: 1px solid green;
display:inline-block;
}
http://jsfiddle.net/dqC8t/3383/
最後のオプションはflexという名前の新しい表示オプションを使用することですが、ブラウザの互換性が機能する可能性があることに注意してください。
http://caniuse.com/#feat=flexbox
http://www.sketchingwithcss.com/samplechapter/cheatsheet.html