Menu
Coddy logo textTech

復習チャレンジ

CoddyのHTMLジャーニー「Practical Frontend」セクションの一部 — レッスン 11/35。

challenge icon

チャレンジ

簡単

ユーザープロフィールのHTMLページが与えられています。あなたのタスクは、モバイルファーストのデザイン原則を適用して、ページを完全にレスポンシブにすることです。以下の指示に従ってください:

1. モバイルファーストのナビゲーション

  • 大きな画面では、ナビゲーションリストを表示し、メニューボタンを非表示にします。

2. モバイルファーストのタイポグラフィ

  • CSS変数 --body-font-size: 16px を作成し、bodyに適用します。これが小さな画面のベースフォントサイズになります。

3. モバイルファーストの画像

  • <picture> タグを使用して、モバイル用と大きな画面用に異なる画像サイズを提供します。
  • <source> タグを使用し、srcset に大きな画像(例:https://upload.wikimedia.org/wikipedia/commons/1/1f/Woman_1.jpg)を指定します。
  • 大きな画面に適用するために、media="(min-width: 768px)" を追加します。
  • 画面幅に応じてプロフィール画像が適切にスケーリングされるようにしてください。

4. モバイルファーストのフォーム

  • すべての入力フィールドと送信ボタンの幅を 100% に設定し、全幅に広がりタップしやすくします。

ページは、モバイルとデスクトップの両方の画面で、クリーンで読みやすく、ユーザーフレンドリーである必要があります。余白、配置、レスポンシブなサイズ調整を適用して、すべてがバランスよく感じられるようにしてください。

自分で試してみよう

<!DOCTYPE html>
<html>
<head>
  <title>Mobile-First Profile</title>
  <style>
    :root {
      --primary-font: Arial, sans-serif;
      --heading-font: 'Helvetica', sans-serif;
      --h1-size: 2rem;
      --h2-size: 1.5rem;
      --primary-color: #4a90e2;
      --secondary-color: #f0f4f8;
    }

    body {
      font-family: var(--primary-font);
      margin: 0;
      padding: 20px;
      background-color: var(--secondary-color);
    }

    h1 {
      font-family: var(--heading-font);
      font-size: var(--h1-size);
      color: var(--primary-color);
      margin-bottom: 5px;
    }

    h2 {
      font-family: var(--heading-font);
      font-size: var(--h2-size);
      color: #333;
      margin-top: 0;
    }

    nav {
      margin-bottom: 20px;
    }

    .menu-button {
      display: block;
      padding: 10px 15px;
      background-color: var(--primary-color);
      color: white;
      border: none;
      border-radius: 5px;
      cursor: pointer;
      margin-bottom: 10px;
    }

    .nav-list {
      display: none;
      list-style: none;
      padding: 0;
      margin: 0;
    }

    .nav-list li {
      margin-bottom: 10px;
    }

    .nav-list li a {
      text-decoration: none;
      color: var(--primary-color);
    }

    .profile-img {
      width: 100%;
      max-width: 250px;
      border-radius: 50%;
      margin-bottom: 20px;
      display: block;
    }

    section p {
      line-height: 1.6;
      margin-bottom: 20px;
    }
    
    form {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    input, textarea, button {
      padding: 10px;
      border: 1px solid #ccc;
      border-radius: 5px;
      font-size: 1rem;
    }

    button {
      background-color: var(--primary-color);
      color: white;
      cursor: pointer;
    }

    /* Media queries for larger screens */
    @media (min-width: 768px) {
      .nav-list {
        gap: 20px;
      }

      .nav-list li {
        margin-bottom: 0;
      }

      form {
        max-width: 500px;
      }
    }
  </style>
</head>
<body>
  <nav>
    <button class="menu-button">Menu</button>
    <ul class="nav-list">
      <li><a href="#">Home</a></li>
      <li><a href="#">About</a></li>
      <li><a href="#">Contact</a></li>
    </ul>
  </nav>

  <header>
    <h1>Jane Doe</h1>
    <h2>Web Developer & Designer</h2>
  </header>

  <section>
      <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1f/Woman_1.jpg/250px-Woman_1.jpg" alt="Profile Image" class="profile-img">
  </section>

  <section>
    <p>Welcome to my profile! I specialize in creating mobile-first, responsive websites that look great on any device. My focus is on performance, accessibility, and clean design.</p>
  </section>

  <section>
    <form>
      <input type="text" placeholder="Your Name">
      <input type="email" placeholder="Your Email">
      <textarea placeholder="Your Message"></textarea>
      <button type="submit">Send Message</button>
    </form>
  </section>
</body>
</html>

Practical Frontendのすべてのレッスン