CSS の position を使ったレイアウトのサンプル


CSS の position プロパティを使ったレイアウトをお勉強中です。

この方法の利点は、HTML の出現順に左右されないレイアウトができる所です。例えば、HTML の末尾に書いた内容をページの一番上に配置することができます。

以下、簡単にまとめてみました。間違ってたらゴメンナサイ。

## プロパティのキーワードについて

キーワード 意味 配置位置
absolute 絶対配置 直前(上位)ブロック要素の左上を基点に絶対配置
relative 相対配置 通常の出現位置(ソース上で書かれた所)を基点に相対配置
static 通常配置 通常の出現位置(ソース上で書かれた所)を基点に通常配置
fixed 固定配置 ブラウザの左上を基点に固定配置(スクロールの影響を受けない)

最後にソースの書き方によって、基点がどう変わるかのサンプルです。

サンプルコード
———————————————————————-



position プロパティ – 基点のテスト



      .Layer1 {
        position: relative;
        top: 0px;
        left: 0px;
        width: 600px;
        height: 400px;
        border: 1px solid red;
      }
    

      .Layer2 {
        position: absolute;
        top: 0px;
        left: 300px;
        width: 300px;
        height: 400px;
        border: 1px solid blue;
      }
    

      .Layer3 {
        position: absolute;
        top: 200px;
        left: 0px;
        width: 300px;
        height: 200px;
        border: 1px solid orange;
      }
    

上の HTML ソースは以下の様になっています。

    <div id="Layer1"></div>
    <div id="Layer2"></div>
    <div id="Layer3"></div>
    

Layer3 は Layer1 を基点として配置されます。

      .Layer1 {
        position: relative;
        top: 0px;
        left: 0px;
        width: 600px;
        height: 400px;
        border: 1px solid red;
      }
    
      .Layer2 {
        position: absolute;
        top: 0px;
        left: 300px;
        width: 300px;
        height: 400px;
        border: 1px solid blue;
      }
    
      .Layer3 {
        position: absolute;
        top: 200px;
        left: 0px;
        width: 300px;
        height: 200px;
        border: 1px solid orange;
      }
    

上の HTML ソースは以下の様になっています。

    <div id="Layer1">
      <div id="Layer2">
        <div id="Layer3">
        </div>
      </div>
    </div>
    

Layer3 は Layer2 を基点として配置されます。


実際の動作サンプル
———————————————————————-

サンプル

2 COMMENTS

MKK

border の 1px 分、width と height を調節しないと、はみ出しちゃいますね。WindowsのIEだと、見え方が違うのでしょうか?

Bowz

あっ!ホントだ!
テストだと思って適当に書いてます。ゴメンナサイ…。
ご指摘ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です