最も古いブラウザーでさえも満足させるために、複数のゆがみを必要とする 1001 の CSS フッター ハックがあることを私は知っています。
しかし、最新の標準に準拠したブラウザー用にフッターを作成する方法を知りたいです。次のコードが機能することを期待していましたが、機能しません。フッターはページの下部ではなく、「コンテンツ」のすぐ下にあります。なんで?
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Footer Test</title>
<style type="text/css">
html
{
height: 100%;
margin: 0;
padding: 0;
}
body
{
height: 100%;
min-height: 100%;
margin: 0;
padding: 0;
}
#page
{
position: relative; /* <--- relative position for footer's parent */
height: 100%;
background-color: #AAA;
}
#header
{
height: 3em;
margin: 0;
padding: 1em;
background-color: #F00;
}
#content
{
margin: 0;
padding: 1em;
background-color: #0F0;
}
#footer
{
position: relative;
bottom: 0; /* <--- distance from #footer's bottom to #page's bottom */
height: 3em;
margin: 0;
padding: 1em;
background-color: #00F;
}
</style>
</head>
<body>
<div id="page">
<div id="header">
<p>This is the header!</p>
</div>
<div id="content">
<p>Yeah, some content!</p>
<p>Yeah, some content!</p>
<p>Yeah, some content!</p>
</div>
<div id="footer">
<p>This is the footer!</p>
</div>
</div>
</body>
</html>
編集:
明確化: フッターをビューポートの下部に配置したい。そのため、コンテンツが少ない場合は、コンテンツの下に隙間があり、フッターはページの下部にある必要があります。ただし、コンテンツが多い場合はスクロールバーを表示し、フッターは下にスクロールしたときにのみ表示されるようにする必要があります。