تابزمدیا> بلاگ> چگونه با CSS @container کامپوننت‌های واکنش‌گرا بسازیم؟
2025-06-01 10:57:38

چگونه با CSS @container کامپوننت‌های واکنش‌گرا بسازیم؟

چگونه با CSS @container کامپوننت‌های واکنش‌گرا بسازیم؟

طراحی واکنش‌گرا در وب طی سال‌های اخیر پیشرفت زیادی کرده است. اگرچه مدیا کوئری‌ها (Media Queries) روش استانداردی برای تطبیق چیدمان با اندازه صفحه نمایش بوده‌اند، اما برای ساخت کامپوننت‌هایی که نسبت به فضای داخلی خود واکنش نشان دهند، محدودیت‌هایی دارند. اینجا است که Container Queries در CSS وارد می‌شوند.

Container Query چیست؟

Container Query قابلیتی جدید در CSS است که به توسعه‌دهندگان اجازه می‌دهد استایل‌هایی را بر اساس اندازه‌ی کانتینر (پدر) یک عنصر اعمال کنند، نه صرفاً اندازه‌ی ویوپورت (صفحه مرورگر). این ویژگی امکان طراحی ماژولارتر و تطبیق‌پذیرتر را فراهم می‌کند.

"Container queries به شما اجازه می‌دهند تا بر اساس ویژگی‌هایی از کانتینر، به یک عنصر استایل بدهید."
MDN Web Docs

چرا از Container Query استفاده کنیم؟

مدیا کوئری‌ها برای تطبیق کل صفحات خوب هستند، اما وقتی یک کامپوننت در اندازه‌های مختلف از یک کانتینر قرار می‌گیرد، دچار مشکل می‌شوند. Container Queries این محدودیت را رفع می‌کنند.

"Container queries مخصوصاً برای طراحی واکنش‌گرا و کامپوننت‌های قابل استفاده مجدد بسیار مفید هستند."
web.dev

چگونه از Container Query استفاده کنیم؟

1. تعریف کانتکست برای کانتینر

ابتدا باید کانتینر (عنصر والد) را با استفاده از ویژگی container-type مشخص کنید:

2. استفاده از قانون @containe

حالا می‌توانید از @container برای اعمال استایل بر اساس اندازه کانتینر استفاده کنید:

"Container queries به ما این امکان را می‌دهند که عناصر را با توجه به اندازه‌ی پدرشان استایل‌دهی کنیم."
LogRocket Blog

مثال عملی

فرض کنید یک کارت (Card) داریم که بسته به عرض کانتینرش باید چیدمانش تغییر کند:

HTML

CSS

با این روش، کارت بسته به عرض کانتینرش چیدمان خود را تغییر می‌دهد، نه عرض کل صفحه.

پشتیبانی مرورگرها

Container Queries در همه مرورگرهای اصلی پشتیبانی می‌شود:

  • Chrome: نسخه 105 به بالا

  • Firefox: نسخه 110 به بالا

  • Safari: نسخه 16 به بالا

  • Edge: نسخه 105 به بالا

"Container queries بالاخره رسیدند! حالا تقریباً در تمام مرورگرهای اصلی پشتیبانی می‌شوند."
Josh W. Comeau

جمع‌بندی

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

همین امروز Container Query را تست کنید و طراحی واکنش‌گرای خود را آینده‌نگرانه‌تر کنید!