ヘッダー、フッター、およびコンテンツ領域を含む基本的なサイト構造があります。ページのコンテンツを中央に配置するために私が見つけたほとんどすべてのソリューションは、CSS 絶対配置を使用し、コンテンツ div のマージンを設定し、ブラウザー ウィンドウの中央にフロートさせます。ただし、これにより、ウィンドウのサイズが縮小されると、コンテンツがヘッダーやフッターを覆うことになります。代わりに、ウィンドウに収まらないときにページをスクロールしたいと思います。
ページのスクリーンショットは次のとおりです。
赤い境界線のある領域は、他の要素を覆わずに垂直方向の中央に配置する必要があります。
私が使用しているHTMLとCSSは次のとおりです。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Layout Test</title>
</head>
<body>
<div class="wrapper">
<div class="header">Header Content</div>
<div class="articleContainer">
<div class="articleLeft">
<div class="articleTitle">
<h1 class="articleTitle">Title</h1>
</div>
<div class="articleText">
<p>Lorem ipsum ...</p>
</div>
</div>
<div class="articleRight">
<div class="articleImage"></div>
</div>
<div class="stepper">Stepper</div>
</div>
<div class="push"></div>
</div>
<div class="footer">Footer Content</div>
</body>
</html>
CSS:
@charset "UTF-8";
* {
margin: 0;
}
html, body {
height: 100%;
}
.wrapper {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -48px;
}
.header {
text-align: center;
background-color: #7FF152;
height: 48px;
}
.articleContainer {
background-color: #CCFFFF;
margin-right: auto;
margin-left: auto;
width: 700px;
clear: both;
min-height: 240px;
position: relative;
border: medium solid #FF0000;
}
.articleLeft {
float: left;
height: 450px;
width: 330px;
}
.articleTitle {
text-align: center;
margin: 20px;
}
.articleText {
max-height: 350px;
overflow: auto;
}
.articleRight {
float: right;
height: 450px;
width: 330px;
background: url(articleImage.fw.png) no-repeat center center;
}
.stepper {
clear: both;
text-align: center;
background-color: #FFFF00;
}
.footer {
background-color: #CC6633;
text-align: center;
height: 48px;
}
.footer, .push {
height: 48px; /* .push must be the same height as .footer */
}
両方をここにアップロードしました: http://cl.ly/3f2o1v0U2c0k
これは jsfiddle です: http://jsfiddle.net/gudmN/1/
お手伝いありがとう。