HTMLのページで、コンテンツが短い時だけフッターを一番下に固定したい
ページを作ったときにコンテンツが短いと、フッターの下に空白が空いてしまいます。
それを避けるためにフッターのCSSをposition:fixed;にして、一番下に固定しました。
ところがそうすると、コンテンツが長くなったときにフッターがコンテンツと被ります。
そのためjavascriptでコンテンツの長さに合わせてposition:fixed;を付けたり外したりしよう、と思いました。
で、色々やってみたのですが画面幅をリサイズしたときにうまく行ったりいかなかったりして安定しません。
どこかコードの書き方を間違えているのでしょうか。
どなたかご教授お願いいたします。
該当のソースコード
html
1<!doctype html> 2<html> 3<body> 4<header> 5</header> 6 7 <div style="width:100%;background-color:skyblue;height:auto;">コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ、コンテンツ</div> 8 9 <footer id="footer"> 10 footer 11 </footer> 12 13</body> 14</html> 15
css
1.fixed{ 2 position:fixed; 3 bottom:0; 4}
javascript
1window.addEventListener('load', footerFixed); 2window.addEventListener('resize', footerFixed); 3function footerFixed(){ 4 const targetElement = document.getElementById( "footer" ) ; 5 const ClientRect = targetElement.getBoundingClientRect() ; 6 7 if(window.innerHeight > (ClientRect.top + ClientRect.height)){ 8 targetElement.classList.add('fixed'); 9 }else { 10 targetElement.classList.remove('fixed'); 11 } 12}
補足情報(FW/ツールのバージョンなど)
ここにコードをあげてみました。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/12 23:25
2021/10/13 01:32
2021/10/13 02:56
2021/10/13 06:10
2021/10/13 06:23
2021/10/13 08:00