[CSS]ラッパーに含まれたコンテンツとヘッダ、ヘッダの幅だけラッパーを超えさせるテクニック
Post on:2013年6月25日
sponsorsr
全体をラッパーで包み、ホワイトのコンテンツはラッパーで指定した幅だけど、レッドのヘッダは表示サイズが指定した幅より広い時にラッパーを超えた幅で表示するスタイルシートのテクニックを紹介します。
いやー、日本語ムズカシイ、、、

デモ
デモページは構造的にはラッパーの中に上から、半透明のレッドのヘッダ、ホワイトのコンテンツの2つで構成されています。
まずは、表示サイズがラッパーの幅960pxを超えた時の表示。

Improved Full Width Browser:幅1200px
コンテンツは幅960pxで表示され、ラッパー内にヘッダが含まれているけど、ヘッダの幅はそのコンテンツのラッパーを超えている状態です。
表示幅が960px以下になると、ヘッダはコンテンツの上部に成り行きで収まります。

Improved Full Width Browser:幅780px
実装
HTML
HTMLはシンプルで、ラッパー内にヘッダとコンテンツが配置されています。
<div class="hidden">
<div class="wrapper">
<header>
<h1>Improved full width browser bars</h1>
<h2>This breaks out of the wrapper but not it's content.</h2>
</header>
<p>This white area is a simple 960 wrapper</p>
</div>
</div>
CSS
ラッパーの幅は「max-width: 960px;」で、ヘッダがこの最大幅を超えるのにはmarginで-500%し、paddingで同じ量500%を指定しています。
あとは、「overflow-x: hidden;」で横スクロールを消すのをお忘れなく。
html, body {
margin: 0;
padding: 0;
background: gray;
font-family: sans-serif;
height: 100%;
}
.hidden {
overflow-x: hidden;
}
.wrapper {
max-width: 960px;
margin: 0 auto;
padding: 2em;
background: white;
}
header {
margin: 0 -500%;
padding: 0.5em 500%;
background: rgba(255,0,0,.5);
}
sponsors











