ポジションをマスターできたらCSSのレイアウト配置はかなり自由度が増すので勉強してみた。
floatとの違いはカラム落ちが発生しないというところです。
図解だとこんな感じ
・static
ポジションに何も指定しないとこれ。標準。
・relative(相対的)
ボックスが本来あるべき位置からtop/right/left/bottomで位置を移動し配置される。
・absolute(絶対的)
親ボックスを基点にそこからの位置を指定し移動する。ちなみにstatic(デフォルト)以外のrelative, fixed, absoluteが親ボックスに指定されていることが条件。
・fixed(位置固定)
あるボックスを基点にそこからの位置を指定する。が、position:absolute;との違いは、ブラウザで見た時、スクロールしてもずっと固定で同じ位置を保持し表示されるというとこ。(動かない)
ところがこのfixedはやっぱり面倒なことにIE6ではバグがあって使えない。使うには下記の設定が必要です。
IE6でposition:fixedを実現させるCSS
div#boxがfixedさせたい部分です。あとはtopやleft、bottomやleftを指定することで位置を決める。
ただし、利用するときは以下のような注意点がある。
※IE6でposition:fixedするときの注意
後方置換ではfixedが適応されない(標準準拠でのレンダリング時にのみ対応)
xml宣言などをしているとこのposition:fixedが適応されません。
使用する場合はHTMLの方でも標準準拠であるようにしておきましょう。
positionを使ったらx-indexで重なり順序を指定するといいでしょう。
指定する数字が大きいと上に重なります。
floatとの違いはカラム落ちが発生しないというところです。
図解だとこんな感じ
・static
ポジションに何も指定しないとこれ。標準。
・relative(相対的)
ボックスが本来あるべき位置からtop/right/left/bottomで位置を移動し配置される。
・absolute(絶対的)
親ボックスを基点にそこからの位置を指定し移動する。ちなみにstatic(デフォルト)以外のrelative, fixed, absoluteが親ボックスに指定されていることが条件。
・fixed(位置固定)
あるボックスを基点にそこからの位置を指定する。が、position:absolute;との違いは、ブラウザで見た時、スクロールしてもずっと固定で同じ位置を保持し表示されるというとこ。(動かない)
ところがこのfixedはやっぱり面倒なことにIE6ではバグがあって使えない。使うには下記の設定が必要です。
IE6でposition:fixedを実現させるCSS
html, body {
height: 100%;
overflow: auto;
margin: 0;
padding: 0;
}
div#box {
position: fixed!important;
position: absolute;
}
div#boxがfixedさせたい部分です。あとはtopやleft、bottomやleftを指定することで位置を決める。
ただし、利用するときは以下のような注意点がある。
※IE6でposition:fixedするときの注意
後方置換ではfixedが適応されない(標準準拠でのレンダリング時にのみ対応)
xml宣言などをしているとこのposition:fixedが適応されません。
使用する場合はHTMLの方でも標準準拠であるようにしておきましょう。
positionを使ったらx-indexで重なり順序を指定するといいでしょう。
指定する数字が大きいと上に重なります。