dポイントプレゼントキャンペーン実施中!

上からmenu、contents、footerのhtmlソースで、
contentsを"position:relative; top:-200px;"で上に200px移動させたら下のfooterとの間に隙間ができました。
この隙間を埋めるためにcontentsに"margin-bottom:-200px;"を追加したらfooterとの隙間は埋まりましたが、footerの下に隙間ができてしまいました。
contentsに"margin-bottom:-200px;"を追加する代わりにfooterに"margin-top:-200px;"を追加しても同じです。
contentsを上に200px移動させるために"position:relative; bottom:200px;"を使っても同様です。

下記のソースでFirefoxで確認しました。
Chromeでは再現しませんでした。
Firefoxはver.87.0です。
Firefoxでの動作は諦めるしかないのでしょうか?

目的はcontentsとfooterの間に隙間を作らず、かつ、footerの下に隙間を作らないことです。
”position:sticky;”ではなく"position:fixed;"も試しましたが、contentsとfooterの間に隙間ができてしまいました。bodyのheightを固定すれば目的は達成できますが、実際のソースではbodyのheightは固定できません。

よろしくお願いします。

<style>
.menu{width:300px;height:400px;background-color:red;}
.contents{width:300px;height:1000px;background-color:blue;border-radius:50%;}
.footer{width:300px;height:50px;background-color:red;}
.footer{
position:sticky;
bottom:0;left:0;
}
.contents{
position:relative;
top:-200px;
margin-bottom:-200px;
}
</style>
<body>
<div class="menu"></div>
<div class="contents"></div>
<div class="footer"></div>
</body>

A 回答 (2件)

こんにちは



contents部分がmenuより上にはいかないと仮定して・・・
空きの部分は無いものとして計算させればよいのでは?

<div class="wrap">
<div class="menu">menu</div>
<div class="contents">contents</div>
</div>
<div class="footer">footer</div>
などとしておいて、

.wrap{ overflow:hidden; }
を追加するとかではいかがでしょうか?
(fx 86.0で確認)
    • good
    • 0
この回答へのお礼

出来ました。\(^O^)/
感動しました。\(^O^)/

お礼日時:2021/04/13 17:14

footerの下に謎の余白が出来る問題は、また別の事です。


普通のサイトで起こります。

提示のソースはそのままにして、以下を行なって下さい。
cssです。

① html,body {height:100%;} を追加
② .contents内に、min-height: 100%; を追加
    • good
    • 0
この回答へのお礼

ありがとうございます。
試してみましたが、私のPCではfooterの下の余白は消えませんでした。

お礼日時:2021/04/13 17:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!