چرا شبکه CSS به اندازه عرض ویوپورت گسترش می‌یابد؟

why css grid extends to viewport width
20 آبان 1403

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

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

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

اما اگر شما در طراحی خود نیاز دارید که یک شبکه ابعاد خاصی داشته باشد و بیش از آن گسترده نشود، این همه به تنظیم اندازه کانتینرتان برمی‌گردد. می‌توانید به سادگی با استفاده از خاصیت max-width یا تعیین مقدار خاصی برای عرض شبکه خود، به هدف خود برسید.

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


<div class="grid-container">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
</div> <style>
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
</style>

<div class="grid-container"> - تعریف یک کانتینر که شبکه‌ای خواهد بود
<div class="grid-item">1</div> - آیتم‌های فردی که درون شبکه قرار دارند
<style>...</style> - بخش استایل که تنظیمات مرتبط با CSS را مشخص می‌کند
display: grid; - تعیین می‌کند که این کانتینر به فرم یک شبکه نمایش داده شود
grid-template-columns: repeat(3, 1fr); - تنظیم سه ستون در شبکه به نسبت مساوی

سوالات متداول

؟

چرا شبکه‌های CSS عرض کامل ویوپورت را می‌گیرند؟

؟

چگونه می‌توان عرض شبکه CSS را کنترل کرد؟