「position:absolute」を子要素に使いたいときは親要素に「position:relative」【CSS】
1年以上前の記事です。内容が古い可能性があります。
CSSには「position(ポジション)」というプロパティがあって、これを使って「position:absolute」と指定すると、
画面上の好きな場所にそのブロック要素を配置することができます。
ただし、自由に動かせすぎるだけに、注意しないとこういったことになりかねません。
まずはこちらをご覧ください。
実はこれ、全く同じHTML及びCSSでできているレイアウトです。
「あいうえお」は「margin:auto」でセンタリングに、「かきくけこ」は「position:absolute」で自由な位置に配置しています。
違うのはウインドウのサイズだけで、ウインドウのサイズが変わるとレイアウトが変わってしまうのです。
具体的なソースは以下のようになっています。
□ HTML
<div id=”naka”> かきくけこ</div>
</div>
□ CSS
width: 800px;
height: 800px;
background-color: #FF9;
margin: auto;
}
#naka {
width: 100px;
height: 100px;
background-color: #FCF;
position: absolute;
top: 200px;
left: 50px;
}
見てお分かりのように、「soto(あいうえお)」内に「naka(かきくけこ)」があるので通常は「soto」が動けば「naka」もそれにそって動かないといけないのですが、「naka」に「position:absolute」と書いてしまったがために、ウインドウを基準にした自由な位置に「naka」が配置されてしまっているのです。
さて、この場合はどうやって問題を解決したらいいのでしょうか?
ヒントは以前説明した「floatで高さ0になった親要素の高さを復活させる方法」です。
この時は親要素にも同じように「float:left」と書くことで解決しています。
今回の「position:absolute」も一緒です。
親要素(この場合「soto」)に対してpositionの設定をしてあげればOK。
ただし、今回は子要素と同じ「position:absolute」にしてはいけません。
「margin:auto」によるセンタリングを活かすには「position:relative」を書きます。
□ CSS
width: 800px;
height: 800px;
background-color: #FF9;
margin: auto;
position:relative;
}
#naka {
width: 100px;
height: 100px;
background-color: #FCF;
position: absolute;
top: 200px;
left: 50px;
}
この書き方をすれば、仮に親要素(ここではsoto)を「float:right」にしてもそれこそ、「position:absolute」で絶対配置をしてもしっかり子要素(ここではnaka)が付いて回ります。
親要素に「position:absolute」を設定する場合は当然ながら「position:relative」は残す必要はありません。
といったところでまとめると
しっかり覚えておきましょう。
ちなみに、過去に「センタリングさせるデザインで「absolute」が使えない」という記事を書いていますが視点が違うので再度あつかってみました。
アドセンス広告メイン
関連記事
-
-
年末
1年以上前の記事です。内容が古い可能性があります。年末が近くなり忙しくなりつつあ …
-
-
リニューアル後のFlickr(フリッカー)でsetのスライドショーを埋め込む方法【その1】
1年以上前の記事です。内容が古い可能性があります。リニューアル後のFlickr( …
-
-
不況の原因はインターネットに同意
1年以上前の記事です。内容が古い可能性があります。誰もが思いながらも口に出せない …
-
-
「LINE Creators Market(ラインクリエイターズマーケット)」の人気スタンプ。「かわベーコン」さんの「にゃっちーず」他
1年以上前の記事です。内容が古い可能性があります。「LINE Creators …
-
-
ライトボックス(LIGHTBOX)最新版(v2.8.2)の設置方法
1年以上前の記事です。内容が古い可能性があります。先日、ライトボックス(Ligh …
-
-
佐野研二郎氏デザインの五輪ロゴ、盗作疑惑で撤回。大手広告代理店の専属デザイナーだからこそ必然
1年以上前の記事です。内容が古い可能性があります。五輪のロゴがパクリだとネットで …
-
-
自分のサイト表示がブラウザごとに確認(チェック)できるサイト「browserling」
1年以上前の記事です。内容が古い可能性があります。Web制作する際に困るのが表示 …
-
-
営業手当てがほしいっす。
1年以上前の記事です。内容が古い可能性があります。最近、足で稼ぐ営業ではほとんど …
-
-
Dream Weaver CS3はユニコードがお好き
1年以上前の記事です。内容が古い可能性があります。Dream Weaver(ドリ …
-
-
バグを逆手にプログラミング(CSSハック)
1年以上前の記事です。内容が古い可能性があります。livedoor ニュース & …









