演習(1)レスポンシブWebデザイン

レスポンシブWebデザインとは

デメリット
  • PCサイトに切り替えられない
  • IE8以前の古いブラウザをサポートできない

レスポンシブWebデザイン化に必要となる記述

  • HTMLにviewportを記述する
  • CSSにメディアクエリを記述する
viewport
  • viewportのwidthという値に、device-widthと指定すると、スマホの画面幅 = 表示するwindowサイズ、となる
<meta name="viewport" content="width=device-width">
メディアクエリ
  • CSSで書式指定を行う際に、条件を追加できる機能
  • レスポンシブWebデザインでは、モバイルの端末やブラウザの「画面の幅」を基準に条件分岐して書式を指定します
@charset "UTF-8";

/* reset */
html, body, div, h1, h2, h3, h4, p, small {
  margin: 0;
  padding: 0;
  line-height: 1.0;
  font-family:
    "Hiragino Kaku Gothic ProN",
    Meiryo,
    sans-serif;
}

/* font-size */
html { font-size: 62.5%; } 
body { font-size: 16px; font-size: 1.6rem; }  /* =16px */
h1 { font-size: 32px; font-size: 3.2rem; }
h2 { font-size: 24px; font-size: 2.4rem; }
h3 { font-size: 20px; font-size: 2.0rem; }
h4 { font-size: 18px; font-size: 1.8rem; }
p { font-size: 16px; font-size: 1.6rem; }

/* body */
body {
  background: #A6DCEB;
  color: #333;
}

/* layout */
#container {
  width: 760px;
  background: #FFF;
  margin: 0 auto;
  padding: 20px;
}
#header {
  margin-bottom: 30px;
}
#content {
  margin-bottom: 20px;
}
#footer {
  border-top: 1px dotted #666;
  padding-top: 10px;
  text-align: center;
}

/* #header */
#header h1 {
  background: #FFF url(img/header_bg.jpg) no-repeat center top;
  margin-bottom: 20px;
  padding: 150px 0 12px	 520px;
  color: #FFF;
  font-size: 28px; font-size: 2.8rem;
}
#header > p {
  margin: 0 32px; margin: 0 3.2rem;
  line-height: 1.4;
  text-indent: 16px; text-indent: 1.6rem;  /* 1文字分字下げ */
}

/* #content */
#content h2 {
  color: #3E4B74;
  border-left: 12px solid #06C;
  margin-bottom: 20px;
  padding: 7px 0 3px 10px;
}
#content h3 {
  color: #1B416D;
  margin-bottom: 10px;
  padding: 10px 0 8px 16px;
  background: #E1EBFF;
  border-top: 1px dotted #1B416D;
  border-bottom: 1px dotted #1B416D;
}
#content h4 {
  color: #3268C9;
  margin-bottom: 8px;
}
#content p {
  margin: 0 0 16px 64px; margin: 0 0 1.6rem 6.4rem;
  line-height: 1.4;
}

@media screen and (max-width:640px) {

/* font-size */
html { font-size: 62.5%; } 
body { font-size: 1.4rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.4rem; }
p { font-size: 1.4rem; }

#container {
  width: 90%;
}
#header {
  margin-bottom: 1.6rem;
}

/* #header */
#header h1 {
  font-size: 2.4rem; 
  background: #FFF url(img/header_bg.jpg) no-repeat center top;
  background-size: 100%;
  text-align: center;
  margin-bottom: 1.0rem	;
  padding: 2.8rem 0 1.6rem 0;
}
#header > p {
  margin: 0;
  text-indent: 1.4rem;  /* 1文字分字下げ */
}

/* #content */
#content h2 {
  margin-bottom: 1.6rem;
}
#content h3 {
  padding: 0.6rem 0 0.5rem 0.5rem;
}
#content h4 {
  margin-left: 1.0rem;
}
#content p {
  margin: 0 0 1.0rem 1.0rem;
  line-height: 1.4;
}

/* #footer */
#footer p { font-size: 1.0rem; }

}