私は HTML と CSS が初めてで、最初のステップの 1 つは、次のような通常のレイアウトを作成することです。
/----------------\
| Header |
|----------------|
| N | |
| a | Content |
| v | |
|----------------|
| Foot |
\----------------/
柔軟性を持たせるために、ナビゲーションの幅は固定せず、コンテンツがその周りに浮かないようにする必要があります。言い換えれば、Nav と Content はテーブルの列のように動作する必要がありますが、HTML では書式設定にテーブルを使用することは大したことではありません。私の現在のコードは次のようになります。
<!DOCTYPE html>
<html>
<head>
<title>Todo list</title>
<style type="text/css">
nav {
float: left;
padding-right: 5px;
margin-right: 5px;
background: yellow;
height: auto; /* auto | inherit | 100% */
width: auto;
}
#content {
margin: 5px;
padding-left: 5px;
}
header {
background: blue;
}
footer {
clear: both;
background: #ccc;
}
.clearfix:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
</style>
</head>
<body>
<header>
Head
</header>
<nav id="main_nav">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/contact">Contact (p)</a></li>
<li><a href="/temp">Temp</a></li>
</ul>
</nav>
<div id="content" class="clearfix">
<h1>Test</h1>
<h2>A</h2><h2>C</h2><h2>D</h2>
</div>
<footer>
<p>[Copyright bumf]</p>
</footer>
</body>
</html>
その結果、
私が見つけたほとんどのソリューションは、Nav または Content マージンに固定幅を使用していましたが、これはクリーンではありません。CSS Multi-column Layout ModuleやCSS Flexible Box Layout Moduleが役に立ちそうですが、どちらも「推奨候補」なので安心して使えません。私の問題を解決する適切な方法は何ですか?