CSSで、フレーム的な表現をしたいのですが、スマートなやり方を教えてください。
CSSにて、「サイドメニュー」「ヘッダ」「コンテンツ」と言うコンテンツを制作したく、以下のソースを記述したのですが、コンテンツ部分(.contents)を100%にすると当然、ヘッダ部分(.header)の100px分がはみ出てしまい、サイドメニュー(.side)の下に余白がでてしまいます。
これを回避するために、現状position: fixed;を使用し、IE用には分岐で他のcssを読ませるようにしているのですが、もっとスマートに、ひとつのcssでこのレイアウトを実現する方法はないものでしょうか?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<title>test</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
<!--
*{
margin: 0px;
padding: 0px;
}
html, body {
height: 100%;
width: 100%;
overflow: auto;
}
.header {
position: absolute;
left: 200px;
width: 300px;
height: 100px;
background-color: #ddd;
}
.side {
position: absolute;
width: 200px;
height: 100%;
background-color: #aaa;
}
.contents {
position: absolute;
margin-top: 100px;
margin-left: 200px;
width: 300px;
height: 100%;
background-color: #333;
overflow: auto;
}
-->
</style>
</head>
<body>
<div class="header">
header
</div>
<div class="side">
side
</div>
<div class="contents">
contents<br />
</div>
</body>
</html>
お礼
回答有り難うございます。 >私が音声ブラウザ対応ページを作る場合は、主にページタイトルとパンくずリストにしてます。 パンくずリストという言葉をはじめて聞きましたが、どういうことでしか?教えていただけたらうれしいです。