حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش CSS از صفر؛ طراحی صفحه با Flexbox و Grid

پروژه نهایی آموزش CSS؛ تکمیل صفحه شخصی با Flexbox و Grid

پروژه نهایی CSS؛ صفحه شخصی با Flexbox و Grid · 0٪

حالا قطعه‌های جدا رو توی یک صفحه کامل جمع می‌کنیم. HTML این مرحله همه بخش‌ها رو داره تا تمرکزت روی رابطه قانون‌های CSS باشه. هدر و مهارت‌ها چیدمان یک‌بعدی دارن، پروژه‌ها شبکه سه‌ستونه می‌خوان و متن معرفی باید خوانایی خودش رو حفظ کنه. یک رنگ برند مشترک هم هدر و لینک تماس رو به هم وصل می‌کنه.

مثال حل‌شده یک صفحه رویداد کوچکه که ظرف کلی، نوار و شبکه مستقل داره؛ این تفکیک نقش‌ها توی پروژه شخصی هم کمک می‌کنه. خطای رایج کپی‌کردن قانون‌های خیلی کلی مثل section{display:flex} است؛ اون قانون بخش‌های نامرتبط رو هم درگیر می‌کنه. هر انتخابگر رو با مسئولیت روشن بنویس و برای رفع یک مسئله، قانون بخش دیگر رو تغییر نده. سند مستقل و کامل است؛ لازم نیست فایل‌های مرحله‌های قبل رو وارد کنی. پیش‌نمایش ۶۴۰ در ۴۸۰ است و صفحه بلندتر می‌تونه پیمایش بشه. معیارها همین صفحه ثابت رو بررسی می‌کنن؛ نیازی به اسکریپت، تصویر خارجی یا رفتار چنداندازه‌ای نیست.

✍️ مثال حل‌شده:

<div class="event"><header>نشست کتاب</header><main class="sessions"><article>صبح</article><article>عصر</article></main></div>
<style>.event { width:400px; } .event header { display:flex; padding:12px; background:teal; color:white; } .sessions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }</style>

حالا نوبت توئه: روی HTML آماده، .profile را width:560px و box-sizing:border-box بده. هدر flex با space-between و align-items:center و زمینه navy؛ منو flex با gap:16px؛ .about زمینه white و padding:20px؛ .bio اندازه 16px و line-height:28px؛ .skills فلکس با gap:8px و سه مهارت با radius:6px باشد. .projects با عرض 480px شبکه سه ستون برابر با gap:12px و سه کارت با padding:12px و radius:8px؛ لینک تماس inline-block با زمینه navy و متن white؛ فوتر وسط‌چین با رنگ #475569 باشد. سه مقصد منو و mailto:sara@example.com و همه متن‌ها و بخش‌ها را حفظ کن. صفحه بلند می‌تواند در پیش‌نمایش پیمایش شود. اندازه ستون‌ها را دقیقاً با grid-template-columns:152px 152px 152px و مقدارهای پیکسلی جداگانه بنویس؛ از fr یا repeat در پاسخ این تمرین استفاده نکن.

فعالیت شما

روی HTML آماده، .profile را width:560px و box-sizing:border-box بده. هدر flex با space-between و align-items:center و زمینه navy؛ منو flex با gap:16px؛ .about زمینه white و padding:20px؛ .bio اندازه 16px و line-height:28px؛ .skills فلکس با gap:8px و سه مهارت با radius:6px باشد. .projects با عرض 480px شبکه سه ستون برابر با gap:12px و سه کارت با padding:12px و radius:8px؛ لینک تماس inline-block با زمینه navy و متن white؛ فوتر وسط‌چین با رنگ #475569 باشد. سه مقصد منو و mailto:sara@example.com و همه متن‌ها و بخش‌ها را حفظ کن. صفحه بلند می‌تواند در پیش‌نمایش پیمایش شود. اندازه ستون‌ها را دقیقاً با grid-template-columns:152px 152px 152px و مقدارهای پیکسلی جداگانه بنویس؛ از fr یا repeat در پاسخ این تمرین استفاده نکن.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

کد اولیهٔ فعالیت

<!doctype html>
<html lang="fa" dir="rtl">
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>تمرین CSS</title></head>
<body>
<div class="profile">
  <header class="site-header"><strong>سارا احمدی</strong><nav aria-label="منوی اصلی"><a href="#about">درباره</a><a href="#projects">پروژه‌ها</a><a href="#contact">تماس</a></nav></header>
  <main>
    <section id="about" class="about"><h1>سارا احمدی، طراح وب</h1><p class="bio">صفحه‌های ساده و خوانا می‌سازم.</p><div class="skills"><span class="skill">HTML</span><span class="skill">CSS</span><span class="skill">یادگیری</span></div></section>
    <section id="projects"><h2>پروژه‌های من</h2><div class="projects"><article class="project"><h3>کارت معرفی</h3><p>اولین تمرین من</p></article><article class="project"><h3>فرم ساده</h3><p>فیلدهای مرتب</p></article><article class="project"><h3>فهرست کتاب</h3><p>چیدمان شبکه‌ای</p></article></div></section>
    <section id="contact"><h2>با من در تماس باش</h2><a class="contact-button" href="mailto:sara@example.com">ارسال ایمیل</a></section>
  </main>
  <footer class="site-footer">ساخته‌شده با تمرین و حوصله</footer>
</div>
</body>
</html>

ظاهر صفحه (CSS)

body{margin:0;padding:16px;font-family:Tahoma,Arial,sans-serif;direction:rtl;color:#1f2937;background:#f3f4f6}*{box-sizing:content-box}
:root{/* رنگ مشترک دلخواه */}.profile{/* ظرف صفحه */}.site-header{/* هدر */}.site-header nav{/* منو */}.about{/* معرفی */}.bio{/* خوانایی */}.skills{/* مهارت‌ها */}.skill{/* برچسب */}.projects{/* شبکه */}.project{/* کارت */}.contact-button{/* تماس */}.site-footer{/* پایان صفحه */}