親要素の幅を越えてメニューなどをブラウザ幅で表示

参考:http://css-eblog.com/csstechnique/overflow-menu.html

通常だと、コンテンツ幅800の場合なんかは

<div id="wrap">
  <div id="header"></div>
  <div id="content"></div>
</div>

#wrap {
  width: 800px;
  margin: 0px auto;
}

とする。だいたいはそうする。
ただ、デザイン的に、ヘッダーの一部だけはブラウザ幅いっぱいの表示したい、なんてこともある。
そういうときは、

<div id="header_wrap">
  <div id="header"></div>
</div>
<div id="menu"></div>
<div id="content_wrap">
  <div id="content"></div>
</div>

#header_wrap, #content_wrap {
  width: 800px;
  margin: 0px;
}
#menu {
  width: 100%;
}

とすることが多い。
とはいえ、この方法だと入れ子が増える。
簡単にするには、

<div id="wrap">
  <div id="header"></div>
  <div id="menu"></div>
  <div id="content"></div>
</div>

body {
  overflow-x: hidden;
  min-width: 800px;
}
#wrap {
  width: 800px auto;
}
#menu {
  margin: 0px -500%;
  padding: 0px 500%;
}