2 div で実現可能です。
実際の例: http://jsfiddle.net/RP24h/
HTMLコード
<div id="green"></div>
<div id="red">
<div id="blue"></div>
</div>
CSS コード
body{ padding-top:60px;}
div{ height:100px;}
#green{ background:green; position:absolute; left:0; top:60px; width:50%;}
#red{ background:red; width:400px; margin:0 auto; position:relative;}
#blue{ background:blue; position:absolute; right:-20px; top:0; width:20px;}
ここでの考え方は、通常と同じように赤を中央に配置することです。緑のdivは絶対位置に配置され、幅は 50% であるため、常に画面の左側から始まり (left:0; を使用)、常に画面のちょうど中央で終了します (幅:50%; を使用)。 . ただし、赤いdiv は常に中央に配置されるため、緑のdivの右端が隠されます。
青いdiv は、必要なものを追加するためにここにあります。正しい値が正確に幅の負の値であることを確認してください (ここでは正しい:-20px; and width:20px;}。その結果、赤と青の div と青の間にギャップが生じることはありません。 div は常に 20px の大きさになります。