新・元地方の中規模印刷会社で苦悩するWebデザイナー改めWebディレクターの日記

自由な20代、窮屈な30代を経て、遂に40代になっちまったWebディレクター&パソコン講師の覚書と思う言(こと)。略称【ちほちゅう】

*

「position:absolute」の親要素に「relative」は世代を超えて設定可能【Webデザイン・CSS】

   

  • このエントリーをはてなブックマークに追加

1年以上前の記事です。内容が古い可能性があります。

CSSを使ったWebデザインで非常によく使うのが「position:absolute」。
絶対位置指定のこのプロパティを使えばぶっちゃけどんなデザインでも可能になってきます。

ただ、親要素に「position:relative」と指定してあげないと、ウインドウ内での絶対位置になってしまうため。ウインドウサイズが変わるとレイアウトが崩れてしまう可能性があるんですね。

これに関しての詳細は以下の記事で解説していますので参考にしてください。
「position:absolute」を子要素に使いたいときは親要素に「position:relative」【CSS】 | ちほちゅう

で、「position:relative」を書いてあげる親要素ですが今までは1世代上、直接の親でないとダメだと思っていたのですが、
そうでなくても設定可能だということが分かりました。

HTMLイメージ

スポンサーリンク
 

どういうことかというと。
以下の図を見てください。

絶対位置指定の親子関係

四角になっているのはブロックレベル要素だと思ってください。
(厳密に言うとHTML5から「ブロックレベル要素」という言い方はなくなったみたいですが考え方としては生きているようですのでそのまま使います)

グレーのブロックレベル要素を絶対位置指定にしたい場合、一般的には1世代上、❶のブロックレベル要素に「position:relative」と書くことでウインドウサイズが変わっても位置のずれない絶対位置指定をすることができるわけです。

が、ブログのテンプレートなどによくあるのですが、❶の上にあるブロックレベル要素の高さ可変だった場合。
かつ、絶対位置指定の基準が❷のブロックレベル要素だった場合。
(たとえば、グレーの部分がヘッダー上のパーツだったりした場合)

この場合、❶のブロックレベル要素に「position:relative」と書いてしまうと、その上のブロックレベル要素の高さが変わってくるとレイアウトが崩れてしまう可能性があるんです。

そんなときは、❶のブロックレベル要素には何も記述せず、❷のブロックレベル要素に「position:relative」と書くこで実装可能だったことに気づきました。
つまり、1世代上、直接の親要素でなくても、「position:relative」を書いたブロックレベル要素を基準とした絶対位置指定になるということです。

分かりますか?

先ほど言ったように、ブログのテンプレートデザインなんかだと、結構、これ、使えるんじゃないかんなぁと思い、忘れないうちに記事にした次第。

ただ、そもそも、HTMLの構造をしっかり考えておけばこんなことはしなくても済むといえばそうなのですが、CMSやAPI全盛期の昨今、自分が思ったような構造でHTMLをかけないこともしばしば。
だもんですから、きっと、これ覚えておけばいずれ使う機会が来るんじゃないかなぁと思います。

なお、世代間のブロックレベル要素にはpositionの指定をしないというのも必須となりますので、その辺りも注意してあげてください。

なんか、久しぶりに技術系の記事書いた気がする。。
そーいえば、Webデザイナーの講師やめて1年近くなるし、そろそろそういった記事も書いていこうかなぁ。。

 - CSS/HTML, Webデザイン , , , , , ,

アドセンス広告メイン

Message

メールアドレスが公開されることはありません。

  関連記事

定額見放題の映像オンデマンド配信サービス「Hulu(フールー)」。日テレ(日本テレビ)が買収

1年以上前の記事です。内容が古い可能性があります。みなさん、Hulu(フールー) …

CSS2.1まとめ書き-background編(HTML・CSSリファレンス)

1年以上前の記事です。内容が古い可能性があります。CSS2.1まとめ書きも3回目 …

no image
Safari(javascriptのバグ?)

1年以上前の記事です。内容が古い可能性があります。またまた「safari」に関し …

no image
検索ワード順位アゲアゲ大作戦 #1

1年以上前の記事です。内容が古い可能性があります。会社のサイトで検索ワード順位が …

今、時代は猫。なのか?

1年以上前の記事です。内容が古い可能性があります。最近、巷で猫々騒がしい。

no image
ブログ移転!?

1年以上前の記事です。内容が古い可能性があります。突然ですが、ブログを移転しまし …

WordPress(ワードプレス)で半角スペース付きのタグが使えるようになっていた

1年以上前の記事です。内容が古い可能性があります。これ、ちょっと嬉しいです。 い …

no image
ドメインリサイクル

1年以上前の記事です。内容が古い可能性があります。ドメインリサイクル業者(個人? …

no image
混沌たるWebの世界

1年以上前の記事です。内容が古い可能性があります。ホームページを作っていてたまに …

no image
perlプログラミング

1年以上前の記事です。内容が古い可能性があります。perlプログラミングを初体験 …

血液型オヤジ