در حال بارگذاری...

مدیا کوئری در CSS

درس طراحی ریسپانسیو ذهنیت را گذاشت: یک درخت HTML، viewport، پوستهٔ سیال، واحد نسبی. مدیا کوئری همان سوئیچ است — تکه‌هایی از CSS که فقط وقتی شرط برقرار باشد روشن می‌شوند (معمولاً عرض viewport). این جلسه نحو و عادت آرام را یاد می‌دهد؛ تصویر واکنش‌گرا و نقاط شکست در درس‌های بعدی عمیق‌تر می‌شوند.

جعبهٔ ابزار مدیا کوئری

📊 مدیا کوئری یک‌نگاه

قطعه کار روزمره
@media یک بلوک شرطی CSS را باز می‌کند
ویژگی رسانه (min-width، max-width، …) آزمونی که مرورگر ارزیابی می‌کند
and همهٔ ویژگی‌های فهرست‌شده باید برقرار باشند
کوئری‌های جدا با ویرگول منطق یا — هر کدام که جور باشد کافی است
قوانین داخل { } استایل‌هایی که فقط تا وقتی شرط برقرار است اعمال می‌شوند
نوع رسانه (screen، print) فیلتر اختیاری برای بستر خروجی

بدون کوئری، هر قانون «همیشه روشن» است. با کوئری، پایهٔ محکم درس قبل را نگه می‌دارید و تغییرها را لایه به لایه اضافه می‌کنید — ستون عریض‌تر، تایپ بزرگ‌تر، ناوبری متفاوت — فقط وقتی viewport جا داشته باشد.

کالبدشکافی @media

الگوی کلاسیک: ویژگی داخل پرانتز، بعد یک بلوک آکولاد با declarationهای معمولی. برای عرض تا می‌توانید rem یا em بگذارید — با تنظیمات ریشه/فونت بهتر scale می‌شود تا فهرست پیکسلِ هر گوشی.

مدیا کوئری ساده با min-width

css
.nav {
display: block;
}

@media (min-width: 48rem) {
.nav {
display: flex;
gap: 1rem;
}
}

Mobile-first با min-width

چیدمان باریک را در استایل پایه بنویسید. با @media (min-width: …) وقتی صفحه عریض‌تر شد غنی‌سازی اضافه کنید. هر پله یک لایهٔ مشخص را عوض کند — فاصله، ستون، یا ناوبری — نه اینکه کل صفحه را در هر پله از نو بنویسید.

غنی‌سازی mobile-first

css
.hero {
padding: 1rem;
font-size: 1.125rem;
}

@media (min-width: 40rem) {
.hero {
padding: 2rem;
font-size: 1.25rem;
}
}

@media (min-width: 64rem) {
.hero {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2rem;
}
}

Desktop-first با max-width

اگر پایه عریض است، @media (max-width: …) زیر یک آستانه استایل را سفت می‌کند — ستون‌ها روی هم، padding کمتر، نوارها ساده‌تر. داخل یک پروژه ثابت بمانید: بدون دلیل بین پشتهٔ خالص min-width و خالص max-width جاخالی نکنید.

سفت‌کردن desktop-first

css
.sidebar {
width: 16rem;
float: left;
}

@media (max-width: 50rem) {
.sidebar {
width: 100%;
float: none;
}
}

ترکیب ویژگی‌ها با and

ویژگی‌ها را زنجیر کنید تا همه برقرار باشند. برای بازه (min و max با هم) یا جفت کردن عرض با ویژگی دیگر مفید است. ویرگول بین کل فهرست‌های @media یعنی یا.

بازه با and

css
.card-grid {
display: grid;
gap: 1rem;
grid-template-columns: 1fr;
}

@media (min-width: 40rem) and (max-width: 63.99rem) {
.card-grid {
grid-template-columns: 1fr 1fr;
}
}

فراتر از عرض — چاپ (و چند اضافهٔ آرام)

عرض ابزار روزمره است. نوع‌هایی مثل print برای کاغذ کروم را پنهان می‌کنند. ویژگی‌های ترجیح (مثلاً prefers-reduced-motion) برای پرداخت دسترس‌پذیری‌اند — اینجا کم استفاده کنید؛ درس نقاط شکست استراتژی را منظم می‌کند و دسترس‌پذیری بعداً حرکت را پوشش می‌دهد.

استایل سادهٔ چاپ

css
@media print {
.site-nav,
.ad-slot {
display: none;
}

body {
color: #000;
background: #fff;
}
}

عادت آرام برای breakpoint

فهرست کوتاهی از عرض‌های نام‌دار بگذارید که با نقاط فشار چیدمان خودتان جور باشد — نه مدل تک‌تک گوشی‌ها. مستندشان کنید (مثلاً «زیر ۴۸rem ناو جمع می‌شود»). پایهٔ سیال + چند کوئری بهتر از جنگل قوانین یک‌بارمصرف برای هر دستگاه است. درس‌های بعد تصویر و برنامهٔ کامل‌تر breakpoint را می‌آورند.

خودتان امتحان کنید

  1. ناوبری ستونی را بردارید و یک @media (min-width: …) اضافه کنید که آن را flex کند.
  2. همان ایده را با سفت‌کردن desktop-first با max-width بازنویسی کنید — فرق پایه را ببینید.
  3. با min-width و max-width یک کوئری بازه بسازید که فقط در یک باند دو ستون باشد.
  4. با @media print یک بنر تزئینی را پنهان کنید.
  5. برای صفحهٔ تمرین سه breakpoint نام‌دار بنویسید — فهرست کوتاه بماند.

اشتباه‌های رایج

  • یک کوئری جدا برای هر برند گوشی، به‌جای نقاط فشار چیدمان
  • فراموش کردن } بسته؛ CSS بعدی داخل کوئری می‌ماند و ناپدید می‌شود
  • قاطی کردن پشتهٔ min-width و max-width تا cascade با خودش بجنگد
  • فقط به کوئری تکیه کردن و نادیده گرفتن کانتینر سیال و واحد نسبی درس ریسپانسیو
  • ریختن کاتالوگ بلند breakpoint اینجا — آن کار در نقاط شکست ادامه دارد؛ تصویر در تصاویر واکنش‌گرا

جمع‌بندی

  • مدیا کوئری CSS را طوری می‌پیچد که فقط وقتی شرط برقرار است اعمال شود
  • min-width رو به بالا غنی می‌کند (mobile-first)؛ max-width رو به پایین سفت می‌کند (desktop-first)
  • and همهٔ ویژگی‌ها را می‌خواهد؛ ویرگول بین کوئری‌ها نقش یا دارد
  • چند breakpoint نام‌دار، گره خورده به نیاز واقعی چیدمان، کافی است
  • بعدی: تصاویر واکنش‌گرا — رسانه‌ای که scale شود و ستون را نشکند

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
8
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود