Blog Detail

[ CSS ] 3カラム・レイアウト、コーディング clearfix

02 4月 18
Kazu
No Comments

 

clearfix を用いた3カラム・レイアウトのコーディングの手順

  1. 3つのボックスに対して、それぞれ、float プロパティを指定する。
  2. clearfix を使い、回り込みを解除する。

HTMLのコーディング

div#contents の中に、div#left-side,div#main,div#right-side を記述する。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8" />
    <title>Page Title</title>
    <meta name="keywords" content="">
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="all" href="style.css" />
    <script src="main.js"></script>
</head>
<body>
<div id="contents">
      <div id="main">
            <p>メインのカラムです。</p>
      </div>
      <div id="left-side">
            <p>左サイドです。</p>
      </div>
      <div id="right-side">
        <p>右サイドです。</p>
      </div>
</div>
<footer>
    <p>これは、フッターです。</p>
</footer>  
</body>
</html>

 

CSS のコーディング

div#contents の幅は、946px、div#left-side の幅を 240px 、div#main を480px 、div#right-side の横幅を 196px とする。

それぞれの要素がわかりやすいように、背景色を指定する。

@charset "utf-8";
#contents {
    width: 946px;
}
#main {
    background-color: red;
    width: 480px;
}
#left-side {
    background-color: green;
    width: 240px;
}
#right-side {
    background-color: blue;
    width: 196px;
}
footer {
    background-color: orange;
}

3カラム・レイアウトのコーディング

@charset "utf-8";
#contents {
    width: 946px;
}
#left-side {
    background-color: green;
    float: left;
    width: 240px;
}
#main {
    background-color: red;
    float: left;
    width: 480px;
}
#right-side {
    background-color: blue;
    float: right;
    width: 196px;
}

 

3カラム・レイアウトのコーディング

オレンジのフッターが入り込み、レイアウトが崩れている。

clearfix を使い、回り込みを解除する。

全体のcontentsを div#contents で囲んでいるので、div#right-side の後に、div#contents の閉じタグが来て、clear プロパティを指定する要素が存在しない。

なので、clearfix を利用する。

div#contents に、clearfix というクラスをHTMLに記述し、CSSに以下のように記述する。

<body>
<div id="contents" class="clearfix">
      <div id="main">
            <p>メインのカラムです。</p>
      </div>
.clearfix::after {
    display: block;
    clear: both;
    height: 0;
    line-height: 0;
    visibility: hidden;
    content: ".";
    font-size: 0.1em;
}
.clearfix {
    display: inline-block;
}

3カラム・レイアウトのコーディング

 

要素間の間隔は、margin などで取る。

【参考書籍】