Menu
CoddyTech

تحدي المراجعة

جزء من قسم الواجهة الأمامية العملية في رحلة HTML على Coddy. الدرس 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)" لتطبيقها على الشاشات الأكبر.
  • اجعل صورة الملف الشخصي متجاوبة: تتيح لها القيمتان width: 100% وmax-width: 250px التقلص على الشاشات الضيقة. وعلى الشاشات العريضة، يظل عرضها 250px؛ فالمصدر الأكبر يجعلها أكثر وضوحًا فحسب.

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>

جميع دروس الواجهة الأمامية العملية

تدرّب بنفسك: Playground لـ Web