فارسی

طراحی ریسپانسیو را با واحدهای طول پرس و جوی کانتینر CSS (cqw, cqh, cqi, cqb, cqmin, cqmax) باز کنید. تکنیک‌های اندازه‌بندی مبتنی بر عنصر را برای طرح‌بندی‌های پویا بیاموزید.

واحدهای طول پرس و جوی کانتینر CSS: تسلط بر اندازه بندی مبتنی بر عنصر

در چشم انداز در حال تحول توسعه وب، طراحی پاسخگو همچنان سنگ بنای ایجاد تجربیات کاربری استثنایی در طیف وسیعی از دستگاه ها است. پرس و جوهای کانتینر CSS به عنوان یک ابزار قدرتمند برای دستیابی به کنترل دقیق بر روی استایل عناصر بر اساس ابعاد عناصر محتوای آنها، به جای نمای دید، ظهور کرده اند. محور این رویکرد، واحدهای طول پرس و جوی کانتینر (CQLUs) هستند که اندازه گیری مبتنی بر عنصر را امکان پذیر می کنند که به طور یکپارچه با طرح بندی های پویا سازگار می شود.

درک پرس و جوهای کانتینر

قبل از پرداختن به CQLUs، درک مفهوم اساسی پرس و جوهای کانتینر ضروری است. برخلاف پرس و جوهای رسانه ای، که به ویژگی های نمای دید پاسخ می دهند، پرس و جوهای کانتینر به عناصر اجازه می دهند تا استایل خود را بر اساس اندازه نزدیکترین عنصر کانتینر خود تنظیم کنند. این باعث ایجاد پاسخگویی بیشتر محلی و انعطاف پذیر می شود و به اجزا اجازه می دهد در زمینه های مختلف متفاوت عمل کنند.

برای ایجاد یک کانتینر، از ویژگی container-type در یک عنصر والد استفاده می کنید. container-type می تواند روی size، inline-size یا normal تنظیم شود. size به تغییرات عرض و ارتفاع کانتینر پاسخ می دهد. inline-size فقط به عرض پاسخ می دهد، و normal به این معنی است که عنصر یک کانتینر پرس و جو نیست.

مثال:

.container {
  container-type: inline-size;
}

@container (min-width: 400px) {
  .element {
    /* Styles applied when the container is at least 400px wide */
  }
}

معرفی واحدهای طول پرس و جوی کانتینر (CQLUs)

CQLUs واحدهای طول نسبی هستند که مقادیر خود را از ابعاد کانتینری که عنصر نسبت به آن پرس و جو می‌شود، می‌گیرند. آنها یک راه قدرتمند برای اندازه‌بندی عناصر متناسب با کانتینرشان ارائه می‌دهند و طرح‌بندی‌های پویا و سازگار را امکان‌پذیر می‌کنند. آنها را به عنوان درصد در نظر بگیرید، اما نسبت به اندازه کانتینر به جای نمای دید یا خود عنصر.

در اینجا یک تجزیه از CQLUs موجود آمده است:

این واحدها کنترل دقیقی بر اندازه عناصر نسبت به کانتینرهایشان ارائه می دهند و طرح بندی های تطبیقی را امکان پذیر می کنند که به صورت پویا به زمینه های مختلف پاسخ می دهند. انواع i و b به ویژه برای پشتیبانی از بین المللی سازی (i18n) و محلی سازی (l10n) که در آن حالت های نوشتاری می توانند تغییر کنند، مفید هستند.

نمونه های عملی از CQLUs در عمل

بیایید برخی از نمونه های عملی چگونگی استفاده از CQLUs برای ایجاد طرح بندی های پویا و سازگار را بررسی کنیم.

مثال 1: طرح بندی کارت پاسخگو

یک کامپوننت کارت را در نظر بگیرید که باید طرح‌بندی خود را بر اساس فضای موجود در داخل کانتینر خود تطبیق دهد. ما می توانیم از CQLUs برای کنترل اندازه فونت و padding عناصر کارت استفاده کنیم.

.card-container {
  container-type: inline-size;
  width: 300px; /* Set a default width */
}

.card-title {
  font-size: 5cqw; /* Font size relative to container width */
}

.card-content {
  padding: 2cqw; /* Padding relative to container width */
}

@container (min-width: 400px) {
  .card-title {
    font-size: 4cqw; /* Adjust font size for larger containers */
  }
}

در این مثال، اندازه فونت عنوان کارت و padding محتوای کارت به صورت پویا بر اساس عرض کانتینر کارت تنظیم می شود. با بزرگ یا کوچک شدن کانتینر، عناصر متناسب با آن تنظیم می شوند و از طرح بندی سازگار و قابل خواندن در اندازه های مختلف صفحه اطمینان حاصل می کنند.

مثال 2: منوی ناوبری تطبیقی

CQLUs همچنین می تواند برای ایجاد منوهای ناوبری تطبیقی که طرح بندی خود را بر اساس فضای موجود تنظیم می کنند استفاده شود. به عنوان مثال، ما می توانیم از cqw برای کنترل فاصله بین آیتم های منو استفاده کنیم.

.nav-container {
  container-type: inline-size;
  display: flex;
  justify-content: space-between;
}

.nav-item {
  margin-right: 2cqw; /* Spacing relative to container width */
}

در اینجا، فاصله بین آیتم های ناوبری متناسب با عرض کانتینر ناوبری است. این تضمین می کند که آیتم های منو همیشه به طور مساوی فاصله دارند، صرف نظر از اندازه صفحه یا تعداد آیتم های موجود در منو.

مثال 3: اندازه بندی تصویر پویا

CQLUs می تواند برای کنترل اندازه تصاویر در داخل یک کانتینر بسیار مفید باشد. این به ویژه در هنگام برخورد با تصاویری که باید به طور متناسب در یک ناحیه خاص قرار بگیرند، مفید است.

.image-container {
  container-type: inline-size;
  width: 500px;
}

.image-container img {
  width: 100cqw; /* Image width relative to container width */
  height: auto;
}

در این حالت، عرض تصویر همیشه 100٪ از عرض کانتینر خواهد بود و اطمینان حاصل می شود که فضای موجود را بدون سرریز شدن پر می کند. ویژگی height: auto; نسبت ابعاد تصویر را حفظ می کند.

مثال 4: پشتیبانی از حالت های نوشتاری مختلف (i18n/l10n)

واحدهای cqi و cqb به ویژه هنگام برخورد با بین المللی سازی ارزشمند می شوند. یک کامپوننت را تصور کنید که حاوی متنی است که باید با اینکه حالت نوشتاری افقی یا عمودی است، تنظیم شود.

.text-container {
  container-type: size;
  writing-mode: horizontal-tb; /* Default writing mode */
  width: 400px;
  height: 200px;
}

.text-element {
  font-size: 4cqb; /* Font size relative to the block size */
  padding: 2cqi; /* Padding relative to the inline size */
}

@media (orientation: portrait) {
  .text-container {
    writing-mode: vertical-rl; /* Vertical writing mode */
  }
}

در اینجا، اندازه فونت به اندازه بلوک (ارتفاع در افقی، عرض در عمودی) و padding به اندازه inline (عرض در افقی، ارتفاع در عمودی) متصل می شود. این اطمینان می دهد که متن بدون در نظر گرفتن حالت نوشتن، قابل خواندن باقی می ماند و طرح بندی سازگار است.

مثال 5: استفاده از cqmin و cqmax

این واحدها زمانی مفید هستند که بخواهید کوچکترین یا بزرگترین بعد کانتینر را برای اندازه گیری انتخاب کنید. به عنوان مثال، برای ایجاد یک عنصر دایره ای که همیشه بدون سرریز شدن در داخل کانتینر قرار می گیرد، می توانید از cqmin برای عرض و ارتفاع استفاده کنید.

.circle-container {
  container-type: size;
  width: 300px;
  height: 200px;
}

.circle {
  width: 100cqmin;
  height: 100cqmin;
  border-radius: 50%;
  background-color: #ccc;
}

دایره همیشه یک دایره کامل خواهد بود و به کوچکترین بعد کانتینرش اندازه می شود.

مزایای استفاده از CQLUs

مزایای استفاده از CQLUs متعدد هستند و به طور قابل توجهی به ایجاد طرح های پاسخگو قوی و قابل نگهداری کمک می کنند:

نکات قابل توجه در هنگام استفاده از CQLUs

در حالی که CQLUs یک ابزار قدرتمند برای طراحی پاسخگو ارائه می دهد، مهم است که از ملاحظات خاصی آگاه باشید:

بهترین شیوه ها برای استفاده از CQLUs

برای به حداکثر رساندن مزایای CQLUs و جلوگیری از مشکلات احتمالی، این بهترین شیوه ها را دنبال کنید:

آینده طراحی پاسخگو

پرس و جوهای کانتینر CSS و CQLUs نشان دهنده گامی مهم به جلو در تکامل طراحی پاسخگو هستند. با فعال کردن اندازه گیری مبتنی بر عنصر و استایل آگاه از متن، آنها به توسعه دهندگان کنترل و انعطاف پذیری بیشتری در ایجاد طرح بندی های پویا و سازگار می دهند. با بهبود پشتیبانی مرورگر و کسب تجربه بیشتر توسعه دهندگان با این فناوری ها، می توانیم انتظار داشته باشیم که از Container Queries در آینده استفاده های نوآورانه تر و پیچیده تری را ببینیم.

نتیجه

واحدهای طول پرس و جوی کانتینر (CQLUs) یک افزوده قدرتمند به ابزار CSS هستند که به توسعه دهندگان این امکان را می دهد تا طرح های واقعاً پاسخگو ایجاد کنند که با ابعاد کانتینرهای خود سازگار شوند. با درک تفاوت های ظریف cqw، cqh، cqi، cqb، cqmin و cqmax، می توانید سطح جدیدی از کنترل بر اندازه عنصر را باز کنید و تجربیات وب پویا، قابل نگهداری و کاربرپسند ایجاد کنید. قدرت CQLUs را بپذیرید و مهارت های طراحی پاسخگو خود را به اوج های جدید ارتقا دهید.