• 締切済み

absoluteした後のブロックのmargin

ブロックが上下2段あります。どちらもwidth:100%です。 上のブロックは訳あってabsoluteを設定して、heighを500pxにしました。 下のブロックの中身が上のブロックの裏に隠れてしまうので、margin-topを500pxにして、正常に表示されました。 この状態で、レスポンシブに対応させるため、上のブロックをmin-height:500pxにして、中身に応じて高さを変えたいのですが、幅が狭くなって中身が伸びた場合、下のブロックのmargin-topをそれに応じて変える方法はないでしょうか。 よろしくお願いいたします。

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

ありません。 absoluteは、 【引用】____________ここから absolute  ・・・【中略】・・・  これらのプロパティはボックスの包含ブロックとの関係を示すオフセットを指定する。絶対配置のボックスは通常フローの範囲外である。これはボックスが以降の兄弟に影響を与えないことを意味する。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Visual formatting model - CSS 2.1 spec (ja)( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/visuren.html#choose-position )]より  absoluteは他の要素に影響を与えない目的で使用するのですから、   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ {中身に応じて高さを変えたいのですが、}とは、矛盾しています。 ※文書構造にしたがってデザインしていくものてす。デザインのためにHTMLを書くのではありません。  その要素に続く他の要素が、その要素の内容により影響を受けるのでしたら、それは決してabsoluteの関係ではないはずです!!!。文書構造に逆らうデザインはできません。するべきではありません。  もう一度、HTML自体を見直しましょう。  逆に、内容が伸縮する要素に関わるのでしたら続く要素はそれに含まれるはずですから、変化する要素に対してabsoluteさせればよいです。

umioyo
質問者

お礼

理想はわかりますけど、それですべて割り切れるものではないです。 jQueryで高さを判別してマージンをとることにします。 ご回答ありがとうございました。

関連するQ&A