レイアウトをデザインする
「border」によるCSSレイアウトの崩れを防ぐ
レイアウトを区切るラインを「border」によって表示させた場合CSSレイアウトが崩れてしまうことがあります。
これは「border」を指定したことで、「site-box」の幅が、「box-1」と「box-2」を横に並べたときの横幅より狭くなることで崩れてしまうのです。
width:800pxに対して「border」を指定することで、border:1px (左右で2px)も含まれてしまうので実際は、width:798pxになりレイアウトの崩れの原因とらります。
つまり、「border」をレイアウトを構築している「div」に指定する場合は、「border」の幅を含めて、「width」を指定する必要があるんです。
この講座では「width」を800pxで指定しているので、
800px(width)+2px(border の左右)=802pxがbodyの幅となります。
今回の講座ではwidth:800pxでもレイアウトの崩れが無かったのでそのままのbodyを800pxのまま続けますがもし「border」の指定で崩れるようであれば「body」に「border」のサイズ分をプラスして下さい。
ホームページ ソース
XHTML(HTML)
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=shift_jis" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div id="body">
<div id="box-1"></div>
<div id="box-2"></div>
<div id="box-3"></div>
<div id="box-4"></div>
</div>
</body>
</html>
CSS(スタイルシート)
#body {
width :800px ;
border: 1px solid #9acd32;
}
width :800px ;
border: 1px solid #9acd32;
}
#box-1 {
border-bottom: 1px solid #9acd32;
}
border-bottom: 1px solid #9acd32;
}
#box-2 {
float : left;
width :200px;
}
float : left;
width :200px;
}
#box-3 {
float : right;
width :600px;
}
float : right;
width :600px;
}
#box-4 {
clear: both;
width: 800px;
}
clear: both;
width: 800px;
}