質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

798閲覧

画面下部の固定フッターを、画面最下部と重ならないよう、同じ高さの空白を作りたい

O_Y

総合スコア3

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

1クリップ

投稿2022/08/19 05:47

実現したいこと

画面下部に固定しているフッタ―があり、それが画面の最下部までスクロールされたときに
画面最下部の表示に重ならないようにしたいです。
画面最下部にフッターと重ならないように空白を入れようとしています。
その空白は、動的に固定フッターと同じ高さにしたいです。

発生している問題・エラーメッセージ

固定フッターの高さは、中身に応じて変えたいので、「height: auto;」にしています。
その固定フッターの高さを基準に、最下部の空白と親要素のdivの高さも同じになるようにしたいのですが、
「height: 100%;」や「height: auto;」などを指定しても、高さが0pxになってしまいます。

該当のソースコード

<style> .fixed_footer { position: fixed; width: 100%; height: auto; left: 0px; bottom: 0px; } .push { height: auto; } .wrapper { position: relative; } </style> <div class="wrapper"> <div class="push"></div><!-- 重なり防止の画面最下部の空白 --> <div class="fixed_footer"><!-- 固定フッター--> <!-- 中身のコンテンツ --> </div> </div>

試したこと

・「fixed_footer」クラスの内容を「wrapper」の中に移してみたが、NG
・「push」クラスの高さを100%にしてみたが、NG

ご回答、よろしくお願いいたします。

dev_kent👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

position: fixed;を設定した要素は通常フローから外れるので、CSSでその高さを取得するのは無理だと思います。

JavaScriptで「fixed_footer」クラスの高さを取得して、それを bodyの padding-bottom に設定することになると思います。

投稿2022/08/19 06:51

hatena19

総合スコア34343

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

O_Y

2022/08/22 01:27

ありがとうございます! CSSでやることが必須ではなかったので、こちらで解決いたしました。
guest

0

position:sticky;でいけませんかね?

.wrapper { display: flex; flex-direction: column; min-height: 100vh; } main {/*fixed_footer手前の要素*/ flex: 1; overflow-x: hidden; margin:3em; } .fixed_footer{ background: tomato; position:sticky; bottom:0; } body{ margin:0; }

stickyサンプル

投稿2022/08/19 07:30

編集2022/08/19 07:39
recal

総合スコア1128

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

O_Y

2022/08/19 08:44 編集

ご教示ありがとうございます。 以下のように変更してみましたが、まだ解決には至りませんでした。 固定フッターが、画面の最下部あたりまでスクロールしないと見えなくなってしまいました。 コードは以下です。 ※ご教示いただいた内容と異なっていたら申し訳ありません。 ``` <style> body { margin: 0; } .fixed_footer { position: sticky; width: 100%; height: auto; left: 0px; bottom: 0px; } .push { flex: 1; overflow-x: hidden; margin: 3em; } .wrapper { display: flex; flex-direction: column; min-height: 100vh; } </style> <div class="wrapper"> <main class="push"></main><!-- 重なり防止の画面最下部の空白 --> <div class="fixed_footer"><!-- 固定フッター --> <!-- 中身のコンテンツ --> </div> </div> ```
recal

2022/08/19 11:36

mainにclass="push"を付与してみましたが固定フッターが見えなくなる現象を再現できませんでした。 ちなみにサンプルページの物は最下部固定表示されていますか?それとも同じようにスクロールしないとフッターは表示されませんか? 質問は編集出来ますので、再現出来るコードを追記してもらうことは可能でしょうか? それかjsで書いちゃったほうが早いかもしれないですね。
O_Y

2022/08/22 01:26

CSSでの対応が難しそうでしたので、JavaScriptで対応することにしました。 ご対応ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問