HITP 広島工業大学専門学校

ホームページの基礎(2. CSS 編)

← 2.14 視覚表現  CSS総目次  2.16 視覚効果 →

  1. 2.15 視覚整形
    1. 2.15.1 ボックスの配置方法
    2. 2.15.2 positionプロパティ
    3. 2.15.3 top,right,bottom,leftプロパティ
    4. 2.15.4 floatプロパティ
    5. 2.15.5 clearプロパティ

2.15 視覚整形

視覚整形とは,視覚メディアを対象として,対象メディア上へのボックスの配置(いわゆるレイアウトに関係するものです)を行うことです。ここでは,その配置に関する主なプロパティについて説明します。

2.15.1 ボックスの配置方法

CSSでは,ボックスの配置方法に,つぎの3種類があります。

通常フロー
通常フロー」は,通常の配置方法で,ブロックボックスのブロックフォーマット化(※ 一般的なボックスを縦に配置することです。),インラインボックスのインラインフォーマット化(※ 一般的なボックスを横に配置することです。),相対位置決め,ランインボックスの位置決めが通常フローに該当します。
フロート
フロート」は,通常フローで配置した後,可能な限り左あるいは右にずらし,後に続く内容をずらした内容の余白に配置する方法です。
絶対位置決め
絶対位置決め」は,通常フローから除外され,包含ブロックからの相対位置に配置される方法です。

CSS総目次 | ページ先頭に戻る

2.15.2 positionプロパティ

positionプロパティ」は,要素が生成するボックスをどのように配置するか,その配置方法(※ アルゴリズムともいう。)を指定します。その書式は以下のとおりです。

positionプロパティ
static | relative | absolute | fixed | inherit
初期値static
適用対象すべての要素
継承しない
パーセント値受けつけない
static
通常フロー」に基づいて配置されます。この値が指定されている場合は,"top","right","bottom","leftp"の各プロパティは指定しても適用されません。
relative
通常フロー」に基づいて配置された場合の位置を基準として,"top","right","bottom","leftp"の各プロパティに指定した値によって,相対的にずらされて表示される方法です。なお,後続のボックスの配置は,ずらされる以前の位置を基準として配置されます。
absolute
通常フロー」から完全に除外され,包含ブロック(※ 実際には,多くのブラウザがbody要素の左上端を基準としています。)を基準として,"top","right","bottom","lefp"の各プロパティによって絶対的に配置される方法です。このときボックスのマージンは他のどのボックスのマージンとも相殺されないことに注意してください。また,"displayプロパティ"はブロックレベル,"floatプロパティ"は"none"に,それぞれ強制されます。
fixed
配置方法は"absolute"と同じですが,対象メディアによって取扱いが異なります。画面表示の場合,表示域上の配置された位置に固定されます。つまり,スクロールされなくなります。

CSS総目次 | ページ先頭に戻る

2.15.3 top,right,bottom,leftプロパティ

"positionプロパティ"に"static"以外の値が指定されている場合(※ これを「位置決めされている要素」と呼びます。),「topプロパティ」,「rightプロパティ」,「bottomプロパティ」,「leftプロパティ」の各プロパティにより,包含ブロックの辺からの距離を指定して配置することができます。

topプロパティ」は,包含ブロックの上辺からボックスの上マージン辺までの距離を指定します。その書式は以下のとおりです。

topプロパティ
<長さ> | <%値> | auto | inherit
初期値auto
適用対象位置決めされている要素
継承しない
パーセント値包含ブロックの高さに対する割合

rightプロパティ」は,包含ブロックの右辺からボックスの右マージン辺までの距離を指定します。その書式は以下のとおりです。

rightプロパティ
<長さ> | <%値> | auto | inherit
初期値auto
適用対象位置決めされている要素
継承しない
パーセント値包含ブロックの幅に対する割合

bottomプロパティ」は,包含ブロックの下辺からボックスの下マージン辺までの距離を指定します。その書式は以下のとおりです。

bottomプロパティ
<長さ> | <%値> | auto | inherit
初期値auto
適用対象位置決めされている要素
継承しない
パーセント値包含ブロックの高さに対する割合

leftプロパティ」は,包含ブロックの左辺からボックスの左マージン辺までの距離を指定します。その書式は以下のとおりです。

leftプロパティ
<長さ> | <%値> | auto | inherit
初期値auto
適用対象位置決めされている要素
継承しない
パーセント値包含ブロックの幅に対する割合
<長さ>
基準からの距離を単位付き数値で指定します。負の値を指定することもできます。
<%値>
基準からの距離を内包ブロックの幅あるいは高さに対する比率で指定します。
auto
関連する他のプロパティの値によって自動的に計算されます。(※ 計算方法の詳細については割愛します。)

以下にサンプルのスタイルと,それを適用したXHTMLコードおよび表示結果を示しめします。

body {
    margin: 10px;
}
p {
    color: #000;
    background-color: #ccc;
    margin: 0;
    border: 10px solid #000;
    padding: 0;
    width: 100px;
}
p#relative {
    position: relative;
    left: 120px;
}
p#absolute1 {
    position: absolute;
    top: 0px;
    left: 200px;
}
p#absolute2 {
    position: absolute;
    bottom: 0px;
    right: 0px;
}
p#fixed {
    position: fixed;
    top: 100px;
    left: 200px;
}
<body>
    <p>static1</p>
    <p id="relative">relative</p>
    <p>static2</p>
    <p id="absolute1">absolute1</p>
    <p id="absolute2">absolute2</p>
    <p id="fixed">fixed</p>
</body>

視覚整形:配置のサンプル表示

CSS総目次 | ページ先頭に戻る

2.15.4 floatプロパティ

floatプロパティ」は,フロートの配置方法を指定します。フロートの前後に配置される位置指定されていない通常のボックスは,フロートを無視して配置されます。ただし,フロートに後続する(※ これを"回り込む"と呼びます。)ラインボックスは,その幅がフロート分だけ短くなります。"floatプロパティ"の書式は以下のとおりです。

floatプロパティ
left | right | none | inherit
初期値none
適用対象すべての要素
継承しない
パーセント値受けつけない
left
左側にフロートするブロックボックスを生成します。後続の内容は,"clearプロパティ"の指定に従って,ボックスの右側に上から回り込みます。
right
右側にフロートするブロックボックスを生成します。後続の内容は,"clearプロパティ"の指定に従って,ボックスの左側に上から回り込みます。
none
フロートするブロックボックスを生成しません。

以下にサンプルのスタイルと,それを適用したXHTMLコードおよび表示結果を示します。

body {
    margin: 10px;
}
p {
    color: #000;
    background-color: #ccc;
    margin: 10px;
    border: 1px solid #000;
    padding: 10px;
}
img {
    margin: 0px;
    border: 1px solid #f00;
    padding: 10px;
    float: left;
}
<p>
<img alt="サンプル画像" src="images/back.jpg" width="120" height="120"/>
あいうえおかきくけこさしすせそたちつてとなにぬねの
はひふへほまみむめもやゆよらりるれろわん
</p>
<p>
あいうえおかきくけこさしすせそたちつてとなにぬねの
はひふへほまみむめもやゆよらりるれろわん
</p>

floatプロパティのサンプル表示

CSS総目次 | ページ先頭に戻る

2.15.5 clearプロパティ

clearプロパティ」は,先行するフロートのボックスに隣接しない(※ "回り込まない",と呼びます。)側を指定します。"clearプロパティ"が指定された要素の子孫にフロートする要素を持つことは可能です。その場合,この"clearプロパティ"は影響しません。"clearプロパティ"の書式は以下のとおりです。

clearプロパティ
none | left | right | both | inherit
初期値none
適用対象ブロックレベル要素
継承しない
パーセント値受けつけない
none
フロートに対するボックス位置の制約をしません
left
先行する左フロートに対する回り込みをしません
right
先行する,strong>右フロートに対する回り込みをしません。
both
先行するすべてのフロートに対する回り込みをしません

以下にサンプルのスタイルと,それを適用したXHTMLコードおよび表示結果を示します。

body {
    margin: 10px;
}
p {
    color: #000;
    background-color: #ccc;
    margin: 10px;
    border: 1px solid #000;
    padding: 10px;
    clear: left;
}
img {
    margin: 0px;
    border: 1px solid #f00;
    padding: 10px;
    float: left;
}
<p>
<img alt="サンプル画像" src="images/back.jpg" width="120" height="120"/>
あいうえおかきくけこさしすせそたちつてとなにぬねの
はひふへほまみむめもやゆよらりるれろわん
</p>
<p>
あいうえおかきくけこさしすせそたちつてとなにぬねの
はひふへほまみむめもやゆよらりるれろわん
</p>

clearプロパティのサンプル表示

CSS総目次 | ページ先頭に戻る

(C)Copyright 2010 HIROTAKA.YAMASHITA. HITP 広島工業大学専門学校. All Rights Reserved.