positionでナビゲーションをレイアウト

「float」を使用しないで横並びになるのに違和感を感じましたが、決まった位置に配置されるので崩れません。今回は「display: block;」を使用しましたが、今後は「display: inline-block」を指定していくようです。



「float」を使用してレイアウトが崩れる理由

  1. 中身がない空ボックスは、高さを確保してくれない為
  2. <div id="wrapper">〜</div>のような空ボックスの作り過ぎ。
@charset_"UTF-8";

img {
	border: 0;
	margin: 0;
	padding: 0;
}
ul,li{
	list-style-type: none;
	margin:0;
	padding:0;
}
html {
	text-align: center;
	padding: 0;
	margin: 0;
}
body {
	position: relative;
	height: 600px;/*便宜上の高さ*/
	width: 800px;
	text-align: left;
	padding: 0px;
	margin-top: 0;
	margin-right: auto;
	margin-bottom: 0;
	margin-left: auto;
}
#header {
	position: relative;
	width: 800px;
	height: 100px;
	background-color: #FFFFCC;
	margin: 0px;
	padding: 0px;
}
#nav {
	position: relative;
	width: 800px;
	height: 40px;
	margin: 0px;
	padding: 0px;
}
li.nav01 {
	position: absolute;
	left: 0px;
	display: block;
}
li.nav02 {
	position: absolute;
	left: 200px;
	display: block;
}
li.nav03 {
	position: absolute;
	left: 400px;
	display: block;
}
li.nav04 {
	position: absolute;
	left: 600px;
	display: block;
}
#wrapper {
	position: relative;
	height: 300px;
	width: 600px;
}
#main {
	position: absolute;
	left: 0;
	margin:0;
	width: 400px;
	height: 300px;
	background-color: #CCFFFF;
}
#side {
	position: absolute;
	height: 300px;
	width: 400px;
	left: 400px;
	background-color: #9999FF;
	margin:0;
}
#footer {
	width: 800px;
	position: relative;
	background-color: #FFCCCC;
	height: 70px;
}