ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと

ホームページを作っています。
ページはタブで切り替えられるようになっています。

footerを常に表示させたい(画面の下部に固定)と色々やってみましたがうまくいかないので質問します。
<div id="footer"></div>

(1)CSS

#footer{
position:fixed;
}

CSSで上のように書いてみました。
文章が少ないときは上に上がり(画面の下に固定されない)、
文章が多くてスクロールが必要なときは、footerが表示されません(要素としては存在しているがつぶれている状態)。

(2)footerFixed.js

ページの一番下に表示される(スクロールしないとfooterを見ることが出来ない)

という状態です。
なぜなのでしょうか?

他に方法はないでしょうか?
教えてください。

A 回答 (3件)

語句簡単な例


※fixedを使うときは、隠れてしまう要素がないようにmarginを忘れず指定すること
 下記サンプルだと、section h2{margin-top:100px;}と#subsection3{margin-bottom:50px;}
 (下記サンプルのように)リキッドにするときは、fixedされた要素内で幅を指定すること

文字コードはUTF-8
★タブは_に置換してあるので戻す。
★リキッドなので、スマホのような小さな画面から幅広ディスプレイまで、このままで利用できる。
<!doctype html>
<html>
<!doctype html>
<html>
<head>
_<meta charset="utf-8">
_<title>サンプル</title>
_<meta name="author" content="ORUKA">
<style media="screen">
<!--
html,body{margin:0;padding:0;height:100%;}
h1,h2,h3,h4{margin:0;}
section{width:80%;min-height:100%;min-width:470px;max-width:900px;margin:0 auto;padding:5px;position:relative;}
section h2{margin-top:100px;}
section section{min-height:300px;width:auto;min-width:0;}
#subsection3{margin-bottom:50px;}
section h2,section p,section section{margin-right:130px;}
header,footer{position:fixed;width:100%;z-index:100;}
header{top:0;height:70px;}
footer{bottom:0;height:50px;}
header h1,header nav,footer h3,footer address{width:80%;min-width:470px;max-width:900px;margin:0 auto;padding:0 5px;}
header h1{height:40px;line-height:40px;}
header nav{height:30px;line-height:30px;text-align:center;}
header nav ul,header nav ol li{margin:0;padding:0;}
header nav ul li{width:20%;display:inline-block;position:relative;}
header nav ul li a{display:block;text-decoration:none;width:100%;height:100%;}
footer h3{height:30px;}
section aside{width:120px;position:absolute;top:75px;right:0;}
header h1,header nav{background-color:aqua;}
section{background-color:yellow;}
footer h3,footer address{background-color:lime;}
header nav ul li{background-color:rgb(220,255,255);}
-->
</style>
</head>
<body>
_<header>
__<h1 id="title">Your title</h1>
__<nav>
___<ul>
____<li><a href="#">Some</a></li>
____<li><a href="#">navigation</a></li>
____<li><a href="#">links</a></li>
___</ul>
__</nav>
_</header>
_<section>
__<h2>A smaller heading</h2>
__<p>
___記事
__</p>
__<section id="subsection1">
___<h3>A smaller heading</h3>
___<p>
____記事
___</p>
__</section>
__<section id="subsection2">
___<h3>A smaller heading</h3>
___<p>
____記事
___</p>
__</section>
__<section id="subsection3">
___<h3>A smaller heading</h3>
___<p>
____記事
___</p>
__</section>
__<aside>
___<h3>目次</h3>
___<ol>
____<li><a href="#subsection1">1</a></li>
____<li><a href="#subsection1">2</a></li>
____<li><a href="#subsection1">3</a></li>
___</ol>
___
__</aside>
_</section>
_<footer>
__<h3>A nice footer</h3>
__<address>&copy; ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
_</footer>
</body>
</html>
    • good
    • 0

HTML5だと


<div id="footer"></div>じゃなくて、<footer></footer>でしょう。
div要素は、原則使いません。
Note:Authors are strongly encouraged to view the div element as an element of last resort, for when no other element is suitable.( http://www.w3.org/TR/html5/grouping-content.html … )--著者は他に適切な要素がないときの最後の手段として、div要素を使用することを強く推奨する。
 また、後方互換でHTML4.01を使用するにしてもidじゃなく、せいぜいclassでしょう。なぜならfooterは文書の随所に登場しうる要素ですから・・

 CSSにおいてposition:fixedは、他の要素から切り離されます。位置(top,bottom,left,right)やサイズはabsoluteと異なり閲覧領域を参照します。
 ⇒9.3 位置決め方式( http://momdo.s35.xrea.com/web-html-test/spec/CSS … )
    • good
    • 0

CSSで


#footer {
position: absolute;
bottom: 0;
}
と指定されたらいかがですか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

画面下に表示されますが、表示内容がおおくてスクロールが必要な時、
最初に表示された位置でそのまま上に行ってしまいます。

私が必要なのは画面がスクロールしてもそのまま画面の下に固定されるやつです。

お礼日時:2013/12/31 15:29

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