WEBサイト制作の勉強

WEBサイト制作の勉強の為の解説ブログです。

固定カラムレイアウトをフルードグリッドにする

授業で作った固定カラムレイアウトのCSSファイルを書き換えて、フルードグリッドにします。

フルードグリッド

 フルードグリッドは、Webページの要素を罫線や升目に沿って配置する「グリッドデザイン(Grid Design)」と、ブラウザーの横幅が変わってもレイアウトを維持したまま要素のサイズを調整する「フルードデザイン(Fluid Design)」を合わせたものです。レスポンシブWebデザインでは、最初にグリッドデザインによって部品や表示領域をpx単位で配置していき、レイアウトが整った後に、値を%に変換してフルードデザインに変更します。



index.html

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>演習:フルードグリッド</title>
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="css/style.css">
</head>
<body id="top">
<div id="container">
<div class="column">
<header>
<h1 class="size-2x2"><img src="img/logo01.png" alt=""></h1>
<nav>
<ul>
<li class="size-1x1"><a href="#"><img src="img/nav01_01.png" alt="CONCEPT"></a></li>
<li class="size-1x1"><a href="#"><img src="img/nav02_01.png" alt="MENU"></a></li>
<li class="size-1x1"><a href="#"><img src="img/nav03_01.png" alt="ACCESS"></a></li>
<li class="size-1x1"><a href="#"><img src="img/nav04_01.png" alt="NEWS"></a></li>
</ul>
</nav>
</header>
<ul>
<li class="size-2x2"><img src="img/ph01_l.jpg" alt=""></li>
<li class="size-1x2"><img src="img/ph02_mt.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph03_s.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph04_s.jpg" alt=""></li>
<li class="size-2x1"><img src="img/ph05_my.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph06_s.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph07_s.jpg" alt=""></li>
</ul>
</div>

<div class="column">
<ul>
<li class="size-2x1"><img src="img/ph08_my.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph09_s.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph10_s.jpg" alt=""></li>
<li class="size-2x2"><img src="img/ph11_l.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph12_s.jpg" alt=""></li>
<li class="right size-1x2"><img src="img/ph13_mt.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph14_s.jpg" alt=""></li>
<li class="size-2x2"><img src="img/ph15_l.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph16_s.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph17_s.jpg" alt=""></li>
<li class="size-2x1"><img src="img/ph18_my.jpg" alt=""></li>
</ul>
</div>

<div class="column three">
<ul>
<li class="size-2x2"><img src="img/ph19_l.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph20_s.jpg" alt=""></li>
<li class="right size-1x2"><img src="img/ph21_mt.jpg" alt=""></li>
<li class="size-1x1 odd"><img src="img/ph22_s.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph23_s.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph24_s.jpg" alt=""></li>
<li class="size-2x1"><img src="img/ph25_my.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph26_s.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph27_s.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph28_s.jpg" alt=""></li>
<li class="size-1x1"><img src="img/ph29_s.jpg" alt=""></li>
<li class="size-2x2"><img src="img/ph30_l.jpg" alt=""></li>
</ul>
<footer id="sp"><p><small>Copyright &copy; 2016 ○○○ All Rights Reserved.</small></p></footer>
</div>

<p><a id="bottom" href="#top">TOPに戻る</a></p>
</div><!-- /#container -->
<footer id="pc"><p><small>Copyright &copy; 2016 ○○○ All Rights Reserved.</small></p></footer>
</body>
</html>

style.css

/*====reset======*/
html, body, h1, ul, li, p, header, nav, footer {
  margin: 0;
  padding: 0;
  line-height: 1.0;
}
ul {
  list-style: none;
}
a {
	text-decoration: none;
}
img {
  border: none;
  vertical-align: bottom;
}


/* layout
=========================*/

#container {
  width: 960px;
  margin: 10px auto;
  overflow: hidden;
}
.column {
  width:320px;
  float: left;
}
h1 {
  margin: 10px;
}
ul {
  width:320px;
  overflow:hidden;
}
li{
  margin: 10px;
  float: left;
  overflow:hidden;
}
.right {
  float: right;
}
footer#pc {
  width: 100%;
  height: 50px;
  background: #281605;
}
footer#pc p {
  text-align: center;
  color: #FFF;
  font-size: 18px;
  line-height: 50px;
}
footer#sp {
  display: none;
}
/*TOPに戻るボタン*/
a#bottom {
  position: fixed;
  bottom: 65px;
  right: 7%;
  z-index: 9999;
  width: 60px;
  height: 60px;
  display: block;
  background:url(../img/to-top.png);
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  opacity: 0.3;
}
a#bottom:hover {
  opacity: 0.8;
}

/*===レスポンシブ対応===*/
@media screen and (max-width:959px){

#container {
  width: 98%; /*960px÷980px =0.98× 100 = 98%*/
  margin: 1%; /*100%-98%(widthの幅)=2%*/
}
.column {
  width: 33.33%; /*3つある.columnを3等分にした%幅*/
}
h1 {
  width:93.75%; /*header幅100%に対し両方のマージン分の6.25%を引いた値*/
  margin: 3.125%;/*10px ÷ 320px(親要素のheaderの幅) × 100*/
}
ul {
  width:100%;
}
li{
  margin: 3.125%;
}
.size-2x2 {
  width:93.75%;/*300px÷320px*/
}
.size-2x1 {
  width:93.75%;
}
.size-1x2 {
  width: 43.75%; /*縦長の画像の幅140pxを親要素のulの幅(320px)で割った値*/
}
.size-1x1 {
  width: 43.75%;
}
.odd {
  width:43.5%;
}
img {
  max-width: 100%;
}
}
@media screen and (max-width:640px){
#container {
  width: 320px;
  margin: 10px auto;
}
.column {
  width: 100%;
  float: none;
}
}