ページの下部にフッターを表示しようとしています。また、ページが長い場合は、1画面分、フッターを一番下までスクロールした後にのみ表示するようにします。そのため、常に表示されるため、「position:fixed」を使用できません。
次の例をコピーしようとしています: http://peterned.home.xs4all.nl/examples/csslayout1.html
しかし、以下を使用すると、何らかの理由でフッターが長いページの半分を表示しています。
position: absolute; bottom:0
短いページと長いページの両方があり、両方の一番下に配置したいと思います。
長いページの下部にフッターを保持するにはどうすればよいですか?
フィドル
これらのフィドルを作成して、問題を表示し、コードをテストしました。ソリューションの実際の例を投稿してください。
フッターcss:
html,body {
margin:0;
padding:0;
height:100%; /* needed for container min-height */
}
.content {
position:relative; /* needed for footer positioning*/
margin:0 auto; /* center, not in IE5 */
height:auto !important; /* real browsers */
height:100%; /* IE6: treaded as min-height*/
min-height:100%; /* real browsers */
}
/* --- Footer --- */
.footerbar { position: absolute;
width: 100%;
bottom: 0;
color: white;
background-color: #202020;
font-size: 12px; }
a.nav-footer:link,
a.nav-footer:visited { color: white !important; }
a.nav-footer:hover,
a.nav-footer:focus { color: black !important;
background-color: #E7E7E7 !important; }
「スティッキーフッター」アプローチをお勧めします。次のリンクを参照してください。
Heightをoverflow:autoに置き換えます。 &体に位置を与える
html,body {
position:relative; <!--Also give it a position -->
margin:0;
padding:0;
overflow:auto; <!-- HERE -->
}
ボディを基準にしてフッターを配置します
/* --- Footer --- */
.footerbar {
position: relative; <!-- HERE -->
width: 100%;
bottom: 0;
color: white;
background-color: #202020;
font-size: 12px;
}
この場合、フッターのように、要素、特にメイン要素を相対的に配置することは、常に可能です。
min-height:400px; <!-- Give this a real number like 400px
or whatever you want...dont leave it to 100% as -->
}
私たちはしばらくの間、この問題に取り組んできました。入れ子になったいくつかのdivにハックとパッチを組み合わせたdivは、私たちにとって悪夢に変わりました。より多くのハックとパッチを必要とする驚きが常にありました。これが私たちが解決したものです:
css:
html, body {
margin: 0px;
padding: 0px;
height: 100%;
color: #6f643a;
font-family: Arial;
font-size: 11pt;
}
form {
height: 100%;
}
体:
<table style="z-index: 1; margin: 0px; left: 0px; top: 0px; overflow:auto" border="0" width="100%" height="100%" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" align="center" >
contents goes here
</td>
</tr>
<tr>
<td valign="top" bgcolor="gray" align="center" style="padding:20px">
<font color="#FFFF00">copyright:Puppy</font>
footer goes here
</td>
</tr>
</table>
それで十分です。 -asp.netを使用している場合は、フォームの高さを無視しないでください。
これで、非常に簡単なフレックスボックスができました。
body {
height: 100vh;
display: flex;
flex-direction: column;
justify-content: space-between;
}
注:本文には2つのdivのみを含める必要があります。1つはフッター用で、もう1つは残りの項目用です
html,body {
margin:0;
padding:0;
height:100%;
}
.content {
padding:10px;
padding-bottom:80px; /* Height of the footer element */
}
.footerbar {
width:100%;
height:80px;
position:absolute;
bottom:0;
left:0;
}
IE7の場合
<!--[if lt IE 7]>
<style type="text/css">
.content { height:100%; }
</style>
<![endif]-->