残念ながら、これを行うための非常にスムーズな方法ではなく、幅広い相互互換性もサポートされています。flex または flexbox と呼ばれる表示用の CSS 仕様があり、美しくエレガントに機能しますが、現時点ではサポートが非常に限られています。ここに、閲覧用のフレックスボックスに関するリソースがいくつかあります...
http://css-tricks.com/old-flexbox-and-new-flexbox/
それまでの間、必要なものを取得する基本的な CSS ジガリー ポケリーを使用して必要なレイアウトを実現できますが、中央の div を絶対的に配置する必要があります。
JSFiddle は次のとおりです: http://jsfiddle.net/CW5dW/
CSSは次のとおりです。
.left {
width: 50%;
height: 300px;
float: left;
padding-right: 160px;
box-sizing: border-box;
background: red;
}
.right {
width: 50%;
height: 300px;
float: right;
padding-left: 160px;
box-sizing: border-box;
background: blue;
}
.middle {
position: absolute;
width: 300px;
height: 300px;
left: 50%;
padding: 10px;
margin-left: -150px;
box-sizing: border-box;
background: orange;
}
ここで何が起こっているのですか?
基本的に、div をクラス middle で取得し、ドキュメントのフローから削除します。これにより、左の div を左に、右の div を右に 50% の幅でフロートさせて、ブラウザのすべてのスペースをスムーズに占有できます。
次に、中央の div に 300px (あなたの場合は 980) のスペースを占有するように指示し、左からブラウザの全幅の 50% になるように指示します。ただし、これは div の左端から計算されるため、中央に配置されません。そのため、左端を div の中心に「移動」するために、幅の半分の負のマージン スペースを与えます。
次に、中央の div の幅が 300px (あなたの場合は 980) であることがわかっているので、私の例では、左の div の右端に中央の div の幅の半分以上のパディングが必要であると言えます。それは 150px で、さらに 10px を追加したので、テキストが div の端に直接来ることができなかったので、合計で 160px になりました。右側の div についても同じことを行いますが、それは左側です。これにより、これら 2 つの div のコンテンツが中央の div の下に収まらないように制限されます。