ポジショニング

[新着] Webテンプレートを仮オープンしました



0   名前: ビギナーくん : 2006/04/06 09:04
ご質問させてください。
どうもポジショニングの意味がよくわかりません。
絶対配置(absolute)は大体分かるのですが
相対配置(relative)がイマイチつかめません。
どの部分に対して相対的なのか・・・?
超初心者ですがお願いします。

1   名前: 通りすがり : 2006/04/06 09:04
>どの部分に対して相対的なのか・・・?
「元あった場所」に対しての相対です。

例えば、
<body>
<img src="" style="margin-top:20px;margin-left:20px;" alt="">
</body>
この画像は表示領域の左上を(0,0)座標とし、上から20px、左から20pxの位置にあることになります。
absoluteをつけると、表示領域の左上を起点とするので、同じ位置に表示しようと思ったら、
top:20px;left:20px;を付け加えます。
relativeは、positionをつけていないときの位置を基点とするので、上から20px、左から20pxの位置が(0,0)座標になります。

<body>
<div style="position:relative; top:20px;left:20px;border:solid 1px #999999;">
<img src="" style="" alt="">
<img src="" style="" alt="">
<img src="" style="position:absolute; top:20px;left:20px;" alt="">
</body>
親要素にrelativeをつけると、子要素にあるabsoluteは親要素の左上が起点となります。

説明的には間違っているかもしれませんが、自分的にはこれで納得しています(^^;

2   名前: Pid : 2006/04/06 09:04
※自分の質問に「ご」という尊敬の接頭辞は要りません (^^;)。

position: relative; は,本来配置されるはずだった所を基準にして,どれだけズラして配置するかを指定します。

position: absolute; は,位置指定された[*]最も近い親を基準にして,どれだけズラして配置するかを指定します。位置指定された親がなければ,初期包含ブロックが基準になります。
[*] 「位置指定された」とは,position に absolute,relative,fix のいずれかを指定されたボックスを指します。


<p>
本来配置されるはずだった場所を基準にして<em style="position: relative; left: 1em; top: 1em; ">配置</em>される。
</p>

<p style="position: relative; ">
位置指定された p 要素を基準にして<em style="position: absolute; left: 1em; top: 1em; ">配置</em>される。
</p>

※かぶった (^^;)。

3   名前: ビギナーくん : 2006/04/06 09:04
ありがとうございます。何となくですが分かってきました。
ポジショニングで別の質問ですが
例えば↓
div.title.block{
position: absolute;
top: 0;
left: 0;
margin-left: 56px;
padding-top: 6px
width: 90%;
height: 5em;
}
といった記述なのですが・・・
position指定でのleft指定と
magin-left指定では意味が違うのですか?
お願いします。

4   名前: ビギナーくん : 2006/04/06 09:04
記述にたいぶ抜けがあったようです↑

5   名前: Pid : 2006/04/06 09:04
別の質問は新しいスレッドにして下さい。

> position指定でのleft指定と
> magin-left指定では意味が違うのですか?

まずソースの「抜け」を修正して下さい。ご質問の意図がイマイチ掴めないので,「この position 指定のソースと,この margin 指定のソースでは結果が同じように見えるが,何が違うのか」のように質問されると良いでしょう。

6   名前: 通りすがり : 2006/04/06 09:04
> position指定でのleft指定と
> magin-left指定では意味が違うのですか?

positionに付随するleftなどは座標の指定ですね。
20pxと指定したとき、0〜20pxまでの間に何があるわけでもない。
marginなどのleftは幅の指定でしょう。
20pxと指定したとき、0〜20pxまでの間には余白…何も書き込めない幅があるわけですね。

多分。

7   名前: ビギナーくん : 2006/04/06 09:04
通りすがりさんありがとうございます。
そうでしたね。単純なところでつまずいてました。

勉強始めてからそろそろ頭が回らなくなってきてました。
引き続きやってみます。
ありがとうございました。

一覧へ戻る