Vol.15 「フリードグリッド」の完成



カテゴリー : WEBの現場から!

サイト制作もいよいよ大詰めだ。今回は最後の総仕上げとして「フリードグリッド」への変換を行う。

「フリードグリッド」への変換

前回までに完成したサイトは、961px以上では固定レイアウトとなり、ウィンドウサイズを広げてもpxでそれぞれの要素の幅を指定しているので、幅は固定されたままであった。そこでPC用のブレイクポイントを920pxに改め、921px~1100pxまでをいわゆるリキッドレイアウト(可変レイアウト)にしていく。そして、リキッドに対応したグリッドデザインを特に「フルードグリッド」と言い、レスポンシブWebデザインは「フリードグリッド」を導入することで完成するのである。

960pxで固定レイアウトを作った理由

それならばなぜ最初から920pxで固定レイアウトにしなかったのか?それはグリッドデザインを行う際に、グリッドのカラム数が12や16など多くの数字で割り切れる960pxが、フレキシブルにグリッドの設計を行える数値なのだ。TRIAINAでは、この960pxを基準に固定レイアウトを作成し、その後「フリードグリッド」を導入し、pxで指定していた箇所を%へと変換していく。

カラム幅の変更

pxで指定していた値を%へ変換するには、以下のような計算式を使う。

変換したい値÷変換したい値の親要素の幅×100

変更する部分は、以下の画像の6つ並んだカラムである。このカラムの「.news」はPC向けスタイルではpx指定をしていたのを思い出してほしい。カラム以外の要素、例えばグローバルナビゲーションは最初から%を指定していたので、変更する必要なない。
 
column
 

/* PC向けレイアウト指定:961px以上では固定レイアウト */
@media only screen and (min-width: 961px) {
  #main .news {
    width: 140px;
    padding:0 10px 0;
  }
}

上記CSSのpx部分を、計算式を使い%へと変更していく。まずは「width: 140px;」。変換したい値はもちろん「140px」。変換したい値の親要素の幅は、「#main」の幅であるが、このidセレクタはさらに親要素である「#contents」の「max-width: 960px;」を継承している。なので変換したい値の親要素の幅は「960px」である。
 すなわち「140÷960×100=14.5833333」となる。同様に「padding」の左右の幅10pxも計算する。「10÷960×100=1.04166667」となる。計算して出た数値をスタイルシートに書き込んでいく。その際に、「961px以上では固定レイアウト」の部分も下記のように変更。「min-width: 961px」を「min-width: 921px」と修正し、PC向けスタイルのブレイクポイントを「920px」に変更する。

/* PC向けレイアウト指定:921px~1100px(1101px以上は固定レイアウト) */
@media only screen and (min-width: 921px) {
  #main .news {
    width: 14.5833333%;
    padding:0 1.04166667% 0;
  }
}

これだけでは、921pxから960pxまでが可変レイアウトとなっただけである。と言うのも、「header」の「img要素」や、グローバルナビゲーションの「ul要素」、コンテンツエリア全体のスタイルである「#contents」に、「max-width: 960px;」と指定しているので、それ以上は可変しないのである。なので「max-width: 960px;」と記述してある所を、「max-width: 1100px;」に変更してやる。変更箇所は下記CSSのハイライト部分。ソース黒枠をマウスオーバーで右上「ソースを表示」からコピーしてほしい。
 
「style.css」

@charset "utf-8";

/* /_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
 全デバイス共通のスタイルとスマートフォン向けレイアウト指定
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_*/

/*==========================================
 body
===========================================*/
body {
  width: 100%;
  background-color:#FFF;
  font-family:'Helvetica Neue', Helvetica, Arial, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, sans-serif;
  color:#000;
}
a {
  color:#000;
  text-decoration:none;
}
a:hover {
  color:#555;
  text-decoration:underline;
}

/*==========================================
 ヘッダーのスタイル
===========================================*/
header {
  text-align:center;
  margin:0 auto;
}
header h1 {
  padding:15px 5px 15px 5px;
}
header h1 img {
  width:100%;
  height:auto;
  max-width:200px;
}
header img {
  width:100%;
  height:auto;
  max-width:1100px;
  margin-bottom:-2px;
}

/*==========================================
 グローバルナビゲーションのスタイル
===========================================*/
#gnav ul {
  text-align:center;
  margin:0 auto;
  max-width: 1100px;
}
#gnav ul li {
  float: left;
  width: 50%;
  border-bottom: 2px solid #000;
  padding-top: 15px;
  padding-bottom: 15px;
}
#gnav ul li a{
  display: block;
}

/*==========================================
 コンテンツエリア全体のスタイル
===========================================*/
#contents {
  max-width: 1100px;
  margin: 0 auto;
  text-align:center;
  padding-bottom: 20px;
}
/*==========================================
 コンテンツエリア -> NEWのスタイル
===========================================*/
#main h2 {
  margin-bottom: 15px;
}
#main .news {
  width: 50%;
  float: left;
  margin-bottom: 20px;
}
#main .news img {
  width: 100%;
  height: auto;
  max-width: 90%;
} 
#main .news h3 {
  text-align: left;
  font-size: 0.9em;
  font-weight: bold;
  line-height: 2.0em;
  padding: 0 5%;
}
#main .news p {
  text-align: left;
  font-size: 0.7em;
  line-height: 2.0em;
  padding: 0 5%;
}

/*==========================================
 フッターのスタイル
===========================================*/
footer {
  margin: 0 auto;
  text-align:center;
  border-top: 2px solid #c0c0c0;
  padding: 15px 0 15px 0;
}
footer p {
  font-size: 0.6em;
  margin-top: 10px;
}

/* タブレット向けレイアウト指定:521px~920px */
@media only screen and (min-width: 521px) {
  #gnav {
    border-bottom: 5px double #000;
    margin-top: 10px;
  }
  #gnav ul {
    margin-bottom: 10px;
  }
  #gnav ul li {
    width: 16.6666667%;
    border-bottom: none;
  }
  #main .news {
    width: 33.3333333%;
  }
}

/* PC向けレイアウト指定:921px~1100px(1101px以上は固定レイアウト) */
@media only screen and (min-width: 921px) {
  header #back{
    background-color:#dddddd;
    height:auto;
  }
  #main .news {
    width: 14.5833333%;
    padding:0 1.04166667% 0;
  }
  #main .news img {
    max-width: 100%;
} 
  #main .news h3 {
    padding: 0;
}
  #main .news p {
    padding: 0;
}
}

119行目の「/* タブレット向けレイアウト指定:521px~960px */」とあった部分を「/* タブレット向けレイアウト指定:521px~920px */」に変えてある。これで「フリードグリッド」は完成だ。では実際にPC画面で見てみよう。ウインドウ幅を伸縮させて、921px~1100pxの幅が可変するのを確かめてほしい。
 
【「フリードグリッド」の完成】
 
レスポンシブ
 
最大幅が1100pxとなり、ワイドPC画面で見ても迫力あるものとなる。これこそが「レスポンシブWebデザイン」のコンセプトである、「どのスクリーンサイズで見ても最適なサイトを提供する」ということなのだ。一通りの「レスポンシブWebデザイン講座」はこれで終わりだが、次回はこのトップ画面をさらにカスタマイズしていく。そしてトップ画面だけではなく、ページのテンプレートサイトも作成したい。
 
「レスポンシブWebデザイン」は無限の可能性を秘めている。TRIAINAではさらなる高見を目指し、その極意を追求していきたいと切望する。〜第一章完〜
 



トリアイナ
新着記事

連載

ランキング

  • It is up to oneself to make an uninteresting world interesting.