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

CSS・HTMLでほとほと困っております。

コンテンツが少なくても、コンテンツが多くても、どちらでもフッターを最下部に常に配置させる方法をおこなってみましたが、場合によってそうなってくれません。

フッターが見えなくなるほどに縦に長くテキストをだらだらと打ってみると、この場合はフッターは常に最下部に配置してくれます。ひと画面で見えないほどにテキストを打ってみても、テキストが最下部までつらなってくれて、フッターは見えなくなります。
このときはブラウザのスクロールバーが出るので、スクロールしてみると、最下部にフッターはちゃんと配置してくれています。これは成功です。

しかし、例えばobject、embed、paramタグを使ってYouTubeにアップしている動画をリンク式で掲載してみると、とたんにダメになります。
一見、フッターは最下部に配置されています。しかし、よくみると動画コンテンツがフッターと重なっています。
ブラウザのスクロールバーが出現しているので、スクロールすると、
スクロールに合わせてフッターまでも一緒にスクロールされて上に上がってきます。
そして、フッターの下に動画コンテンツの続きが表示されています。

IE8では、フッターの上に動画コンテンツが重なっています。
Firefoxでは、動画コンテンツの上にフッターが重なっています。

どうすれば直るでしょうか?

ちなみに、以下のサイトの方法を順守して作成しました。

http://www.stylish-style.com/csstec/ultimate/fix …

A 回答 (4件)

フッターの固定ですが、私はcatfish.jsを使用していますが、どうもそのサイトは現在閉鎖されているようです。


代わりに『footerFixed.js』が使用できると思います。
http://blog.webcreativepark.net/2007/11/16-01225 …
どうしてもCSSでやりたい!という場合は無理ですが、javascriptでもいいよという場合は使用してみてください。
ちなみにこのサイトの中にはCSSで固定する方法も書き込まれています。

それと、フッターを固定した場合、YouTubeの動画を埋め込むと固定したフッターの上にかぶって表示されると言う現象がIEとGoogle Chromeのみで起こりました。
(catfish.jsを使用した場合ですが)
もし、そのような現象が起きた場合、以下の処理を行ってみてください。
私は以下のサイトを参照して回避できました。
http://black-flag.net/html/20110711-3316.html

埋め込みタグの中に『&wmode=transparent』を追記します。

追記前:<iframe width="425" height="349" src="http://www.youtube.com/embed/5xLLvnAtBig?rel=0" frameborder="0" allowfullscreen></iframe>

追記後:<iframe width="425" height="349" src="http://www.youtube.com/embed/5xLLvnAtBig?rel=0&w … frameborder="0" allowfullscreen></iframe>

これでたぶん解消できると思います。
試してみてください。
    • good
    • 0
この回答へのお礼

その他にいきなり差し込みで優先業務がぼうだいに出てしまい、お礼できておりませんでした。
おかげさまで解消できそうです。作業に入ってみます。
お礼が遅くなって申し訳ありませんでした。感謝感謝です

お礼日時:2012/09/25 10:06

 No.2の回答は、このシステムのバグ(アットマークがあるとメールアドレスと解釈する?)ため、しばらくお待ちください。


 本文(サンプルではdiv.section)がどこまで伸びているかわかるように、本分のみ背景色を付けていますが、これをdiv.footerまで伸ばすのでしたら、body自体に背景色を指定するのが楽です。また、footerの位置をsectionの位置を基準に配置するとか・・

 いまひとつ、具体的な内容がわからないので一般論的な回答にしかなりませんが、ただ、「スクロールに合わせてフッターまでも一緒にスクロールされて上に上がってきます。」の原因がfloatやabsoluteに有る可能性もあります。
 positionやabsoluteの挙動を理解されると解決する問題だとは思います。たぶん、これを理解しておかないと、今後も悩むことになるでしょう。すみません一般論で・・
★視覚整形モデル ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )



 
    • good
    • 0

 IE8は、HEAD内の代替スタイルシートに対応していないことを忘れてました。


 外部にスタイルシートを置いてください。
 HTMLと同じ位置にcssというフォルダを作成してその中に4つのスタイルシートを入れてください。HTML/CSS共にShift_JISです。
 今度はスタイルシートを切り替えられるはず・・どのスタイルが希望なのかわかりませんが・・多分「フッターのみ固定かな」
★画像は用意してください。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
_<link rel="stylesheet" type="text/css" media="screen" href="./css/default.css">
_<link rel="stylesheet" type="text/css" media="screen" href="./css/standard.css" title="標準">
_<link rel="Alternate StyleSheet" type="text/css" media="screen" href="./css/h-f-fix.css" title="ヘッダフッタ固定">
_<link rel="Alternate StyleSheet" type="text/css" media="screen" href="./css/f-fix.css" title="フッタ固定">
</head>
<body>
_<div class="header">
__<h1>サンプル</h1>
_</div>
_<div class="section">
__<h2>本文</h2>
__<div class="figure">
___<object data="./images/2.jpg" type="image/jpeg" width="640" height="480">
____これはグランドキャニオンの<EM>アップ</EM>です。
___</object>
__</div>
__<div class="figure">
___<object data="./images/2.jpg" type="image/jpeg" width="640" height="480">
____これはグランドキャニオンの<EM>アップ</EM>です。
___</object>
__</div>
_</div>
_<div class="footer">
_<h2>文書情報</h2>
_</div>
</body>
</html>


以下スタイルシート(default.css)
@charset "Shift_JIS";
html,body{margin:0;padding:0;}
div.header{height:100px;background-color:yellow;}
div.footer{height:50px;background-color:gray;}
div.section{background-color:silver;}
h1,h2,h3,p{margin:0 auto;}
div.figure{width:640px;margin:0 auto;}


以下スタイルシート
@charset "Shift_JIS";
/* 何も書かなくて良い */


以下スタイルシート(h-f-fix.css)
@charset "Shift_JIS";
html,body{height:100%;}
div.header,div.footer{position:fixed;width:100%;}
div.header{top:0;}
div.footer{bottom:0;}
div.section{margin:0;padding:100px 0 50px 0;}


以下スタイルシート(f-fix.css)
@charset "Shift_JIS";
html,body{height:100%;position:relative;}
div.footer{position:fixed;}
div.footer{bottom:0;width:100%;}
div.section{margin:0 0 50px 0;background-color:silver;overflow:auto;}
    • good
    • 0

>このときはブラウザのスクロールバーが出るので、スクロールしてみると、最下部にフッターはちゃんと配置してくれています。

これは成功です。

 いえ、成功していません。

 紹介されているサイトは、画面(ウィンドウ)の下部にフッターを固定する方法と言っていながら、実際には。本文のサイズによって移動してしまいます。
 ディスプレイの下部に固定すると、本文が短かろうが長かろうが常にディスプレイの最下部に表示され続けているはずです。

 次に、オブジェクト--<img><object><embd>などの要素-- Objects, Images, and Applets in HTML documents ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … ) --は、置換インライン要素と呼ばれるグループで、そのサイズは内容(と指定サイズ)によって変わり、かつインライン要素でブロック要素内にしか存在しえません。【この場合は、リンクではありません。リンクとは、他のデータに移動する場合だけです。--http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401 …
 <p><img></p>
 <div><object></object></div>

最下段に、フッターを表示する場合は、まったく普通でよいです。何も指定しなくてもそうなるはず。

以下に簡単なソースをあげておきます。ブラウザの表示メニューからスタイルシートの項目を見つけて、三種類の表示方法を確認してください。なお、印刷の場合は、特に指定していませんから素のHTMLとして印刷されます。

★Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint. … )
★W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_ … )
で検証済みのHTML4.01strictです。
タブは_に置換してありますから戻すこと。
class名は、文書構造を示すものにしてあります。
「DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )」
class名は、HTML5 における HTML4 からの変更点の新しい要素 ( http://standards.mitsue.co.jp/resources/w3c/TR/h … )名とその意味を基にしています。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
_<style type="text/css" media="screen">
<!--
html,body{margin:0;padding:0;}
div.header{height:100px;background-color:yellow;}
div.footer{height:50px;background-color:gray;}
div.section{background-color:silver;}
h1,h2,h3,p{margin:0 auto;}
div.figure{width:640px;margin:0 auto;}
-->
_</style>
_<style type="text/css" title="標準" media="screen">
<!--

-->
_</style>
_<style type="text/css" title="フッターヘッダ固定" media="screen">
<!--
html,body{height:100%;}
div.header,div.footer{position:fixed;width:100%;}
div.header{top:0;}
div.footer{bottom:0;}
div.section{margin:0;padding:100px 0 50px 0;}
-->
_</style>
_<style type="text/css" title="フッターのみ固定">
<!--
html,body{height:100%;position:relative;}
div.footer{position:fixed;}
div.footer{bottom:0;width:100%;}
div.section{margin:0 0 50px 0;background-color:silver;overflow:auto;}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>サンプル</h1>
_</div>
_<div class="section">
__<h2>本文</h2>
__<div class="figure">
___<object data="./images/2.jpg" type="image/jpeg" width="640" height="480">
____これはグランドキャニオンの<EM>アップ</EM>です。
___</object>
__</div>
__<div class="figure">
___<object data="./images/2.jpg" type="image/jpeg" width="640" height="480">
____これはグランドキャニオンの<EM>アップ</EM>です。
___</object>
__</div>
_</div>
_<div class="footer">
_<h2>文書情報</h2>
_</div>
</body>
</html>
    • good
    • 0
この回答へのお礼

ありがとうございます。
ですが、試してみましたがダメでした。
IE8では「文書構造」という行が画面最下部に配置されているものの、本文というコンテンツエリアは「これはグランドキャニオンのアップです。」の文章が終わったら背景色が切れてしまっています。画面最下部のフッターまでの間、伸びてくれないといけないのに。
また、Firefox8.0.1ですと、フッターすら最下部に配置されず、本文の「これはグランドキャニオンのアップです。」が終わったすぐ直後にフッターは配置されます。
「_」はタブに置換しましたし、どこかおかしいんでしょうか??

お礼日時:2012/02/29 18:28

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