詳解CSS レスポンシブウェブデザイン編

basic

幅に応じて表示の仕方を変える 基本

view-portの設定
設定しないと、スマホ等でみると、フォントが合わず見にくい画面になる

デベロッパーツールで、画面表示をiPhone等に変えてみるとわかる

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>responsive</title>
  <meta name="viewport" content="with=device-width, initial-scale=1">
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <h1>タイトル</h1>
  <p>こんにちは。こんにちは。こんにちは。こんにちは。こんにちは。こんにちは。こんにちは。こんにちは。こんにちは。こんにちは。</p>
</body>
</html>

メディアクエリー

@media (min-width: 600px) and (max-width: 800px) {
  body {
    background: skyblue;
  }
}

実践編

<body>
  <div class="image">image</div>
  <div class="text">text</div>
</body>
/* common */
/* small screen */

body {
  margin: 0;
}
.image {
  background: pink;
  height: 100px;
}
.text {
  background: silver;
  height: 100px;
}

/* medium screen */
@media (min-width: 600px) {

}

/* large screen */
@media (min-width: 800px) {

}

幅設定

通常縦表示で、幅が広くなると横表示に変更

<body>
  <section>
    <div class="image">image</div>
    <div class="text">text</div>
  </section>
</body>
/* medium screen */
@media (min-width: 600px) {
  section {
    display: flex;
  }
  .image {
    width: 200px;
  }
  .text {
    flex: 1;
  }
}

800px over

<body>
  <section>
    <div class="image">image</div>
    <div class="text">text</div>
    <aside>AD</aside>
  </section>
</body>
/* large screen */
@media (min-width: 800px) {
  section {
    width: 800px;
    margin: 0 auto;
  }
  aside {
    display: block;
    width: 160px;
    background: yellow;
  }
}