قالب کشسانی: اصول ساخت و تفاوت با سازگارش‌پذیر

نویسنده: IT Sectr منتشر شده: 2026-08-02 زمان مطالعه: 7 دقیقه

قالب کشسانی — نوعی کدنویسی است که در آن عرض عناصر به درصد یا سایر واحدهای نسبی تعیین می‌شود نه در پیکسل‌های ثابت. چنین قالبی به تناسب اندازه پنجره مرورگر مقیاس می‌شود و ساختار صفحه را در هر نمایشگری حفظ می‌کند. به گزارش MDN Web Docs (2026)، کدنویسی کشسانی به اساس طراحی رسپانسیو مدرن تبدیل شده است، هرچند امروز به ندرت به صورت خالص استفاده می‌شود.

نکات کلیدی

  • قالب کشسانی — کدنویسی با واحدهای نسبی که با عرض نمایشگر سازگار می‌شود
  • درصدها (%) — واحد اصلی کدنویسی کشسانی، عرض را نسبت به کنتینر والد تعیین می‌کند
  • واحدهای vw/vh — اتصال به اندازه viewport، توسعه دهنده امکانات کدنویسی کشسانی
  • تفاوت با قالب سازگارش‌پذیر — کشسانی به صورت متصل تغییر می‌کند، سازگارش‌پذیر از طریق بریکپوینت‌ها به صورت پله‌ای
  • مشکلات کدنویسی کشسانی — در نمایشگرهای خیلی عریض محتوا بدون محدودیت غیرقابل خوانش می‌شود

قالب کشسانی چیست

قالب کشسانی (liquid layout، fluid layout) — رویکردی در کدنویسی است که اندازه عناصر به جای پیکسل‌های ثابت در واحدهای نسبی تعیین می‌شود. این به صفحه اجازه می‌دهد بدون پیمایش افقی همراه با پنجره مرورگر مقیاس شود.

مفهوم کدنویسی کشسانی در دوران مانیتورهای رومیزی با وضوح مختلف به وجود آمد. در سال‌های 2000، سایت‌هایی با عرض ثابت 960 پیکسل در مانیتورهای 15 اینچی و 30 اینچی ظاهر نازیبی داشتند. قالب کشسانی این مشکل را حل کرد.

به گزارش Web Almanac (2024)، 78% از سایت‌های مدرن از عناصر کدنویسی کشسانی از طریق واحدهای نسبی استفاده می‌کنند. قالب‌های کشسانی خالص کمتر مشاهده می‌شوند — اساساً در داشبوردها و پانل‌های مدیریت.

زمینه تاریخی

کدنویسی کشسانی پس از انتشار مقاله جان الساپ با عنوان «A Dao of Web Design» در سال 2000 محبوب شد، که در آن از رها کردن پیکسل‌های ثابت به نفع واحدهای نسبی دعوت کرد. این بیانیه پایه فلسفی برای تمام طراحی رسپانسیو را بنیاد گذاشت.

واحدهای نسبی اندازه‌گیری: درصدها، vw، vh

واحدهای نسبی اصلی در CSS به دو گروه تقسیم می‌شوند: نسبت به عنصر والد (درصدها) و نسبت به viewport (vw، vh، vmin، vmax). هر گروه مسائل خود را در کدنویسی کشسانی حل می‌کند.

css
/* Percent — width relative to parent */
.sidebar {
    width: 30%;
}

.content {
    width: 70%;
}

/* vw/vh — viewport-based units */
.hero-section {
    width: 100vw;
    height: 80vh;
}

.fullscreen-modal {
    width: 90vmin;
}

درصدها نسبت به عرض کنتینر والد محاسبه می‌شوند. درصدهای تودرتو می‌توانند محاسبات سلسله‌ای ایجاد کنند که گاهی نتایج غیرمنتظره ای دارند. واحدهای vw/vh به viewport وابسته هستند و کنتینرهای والد را نادیده می‌گیرند — این برای بخش‌های تمام صفحه مناسب است.

واحد rem برای فونت‌ها

در کدنویسی کشسانی تنها تعیین عرض بلوک‌ها در واحدهای نسبی مهم نیست، بلکه اندازه فونت نیز مهم است. واحد rem (root em) اندازه متن را به عنصر ریشه HTML وابسته می‌کند. با تغییر font-size در html، می‌توان کل متن را در صفحه مقیاس کرد.

css
/* Global text scaling via rem */
html {
    font-size: 62.5%; /* 1rem = 10px */
}

.heading {
    font-size: 2.4rem; /* = 24px */
}

.body-text {
    font-size: 1.6rem; /* = 16px */
}

قالب کشسانی در مقابل سازگارش‌پذیر

تفاوت اصلی بین قالب کشسانی و سازگارش‌پذیر ماهیت تغییر عرض است. قالب کشسانی با هر تغییر پنجره به صورت متصل تغییر می‌کند، اما سازگارش‌پذیر از طریق media queries به صورت گسسته تغییر می‌کند.

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

ویژگیقالب کشسانیقالب سازگارش‌پذیر
واحدها%, vw, rempx, عرض‌های ثابت
مقیاسنرم، متصلپله‌ای، توسط بریکپوینت‌ها
پشتیبانی از نمایشگرهاهر عرضیتنها وضوح‌های مشخص
پیچیدگیپایینبالا (نیاز به media queries)
کنترلکنترل کمترکنترل کامل در بریکپوینت‌ها

در عمل اکثر سایت‌های مدرن از رویکرد ترکیبی استفاده می‌کنند: شبکه کشسانی با واحدهای نسبی + media queries برای بریکپوینت‌های حریج. کدنویسی کشسانی خالص بدون media queries ممکن است در نمایشگرهای خیلی عریض یا خیلی باریک نامرتب به نظر برسد.

چگونه کدنویسی کشسانی را در CSS پیاده سازی کنیم

پیاده‌سازی پایه قالب کشسانی شامل سه مؤلفه است: واحدهای نسبی عرض، محدودیت‌های حداکثر/حداقل و flexbox یا grid برای توزیع فضا.

css
/* Fluid grid with Flexbox */
.container {
    display: flex;
    flex-wrap: wrap;
}

.card {
    flex: 1 1 30%;
    min-width: 250px;
}

/* Fluid grid with CSS Grid */
.grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

رویکرد Flexbox با flex: 1 1 30% کارت‌هایی ایجاد می‌کند که تقریباً 30% عرض کنتینر را اشغال می‌کنند اما می‌توانند تا 250px باریک شوند. وقتی کارت‌ها زیاد هستند، به ردیف بعدی منتقل می‌شوند. رویکرد Grid با auto-fit و minmax به طور خودکار ستون‌هایی ایجاد می‌کند که در کنتینر جا می‌گیرند.

محدودیت‌ها: min-width و max-width

مشکل کلیدی کدنویسی کشسانی خالص — در نمایشگرهای خیلی عریض، خط متن تا 2000+ پیکسل کش می‌شود که خواندن را غیرممکن می‌کند. برای حل از ویژگی‌های CSS مانند min-width، max-width استفاده می‌شود.

css
/* Container limits for readability */
.content-wrapper {
    width: 90%;
    max-width: 1200px;
    min-width: 320px;
    margin: 0 auto;
}

max-width: 1200px از کشیده شدن محتوا در مانیتورهای فول‌اید جلوگیری می‌کند. min-width: 320px حداقل عرض کنتینر را در نمایشگرهای کوچک تضمین می‌کند. ترکیب width: 90% + max-width یک کنتینر کشسانی با سقف ایجاد می‌کند — محبوب‌ترین الگو در طراحی وب مدرن.

به گزارش HTTP Archive (2025)، 92% از سایت‌های در بین ۱۰۰۰ برتر از max-width برای بلوک‌های محتوایی استفاده می‌کنند. مقدار استاندارد برای قالب‌های رومیزی 1140–1200 پیکسل است.

رویکرد ترکیبی: کشسانی + سازگارش‌پذیر

طراحی وب مدرن به ندرت از رویکرد کشسانی یا سازگارش‌پذیر خالص استفاده می‌کند. روش ترکیبی مزایای هر دو را ترکیب می‌کند: شبکه کشسانی در واحدهای نسبی + media queries برای تغییرات ساختاری جهانی.

css
/* Hybrid: fluid base + media query */
.layout {
    display: grid;
    grid-template-columns: 1fr 3fr;
}

@media (max-width: 768px) {
    .layout {
        grid-template-columns: 1fr;
    }
}

در دسکتاپ قالب از ستون‌های کشسانی 1fr و 3fr استفاده می‌کند — نسبت در هر عرضی از پنجره حفظ می‌شود. در موبایل media query به طرح یک ستونه تغییر می‌کند، جایی که ستون‌ها به صورت عمودی قرار می‌گیرند.

مزیت رویکرد ترکیبی — توسعه‌دهنده کمتر media queries می‌نویسد، زیرا شبکه کشسانی خودکار خود را با اندازه‌های وسیط تطبیق می‌دهد. Media queries تنها برای تغییرات حریج ساختار لازم است، نه برای هر مرحله عرض نمایشگر.

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

تفاوت بین قالب کشسانی و سازگارش‌پذیر چیست؟

قالب کشسانی از واحدهای نسبی استفاده می‌کند و با هر تغییر پنجره به صورت نرم مقیاس می‌شود. قالب سازگارش‌پذیر از طریق media queries بین قالب‌های ثابت تغییر می‌کند. سایت‌های مدرن معمولاً هر دو رویکرد را ترکیب می‌کنند.

کدام واحدها برای کدنویسی کشسانی بهتر هستند؟

برای کنتینرها — درصدها (%) و fr (flex/grid). برای فونت‌ها — rem (نسبت به عنصر ریشه). برای بخش‌های تمام صفحه — vw/vh. ترکیب این واحدها حداکثر انطواف‌پذیری را فراهم می‌کند.

چرا قالب کشسانی ممکن است ناراحت باشد؟

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

برای SEO کدام بهتر است — قالب کشسانی یا سازگارش‌پذیر؟

Google طراحی رسپانسیو (responsive web design) با media queries را توصیه می‌کند، اما کدنویسی کشسانی را ممنوع نمی‌کند. از نظر SEO، نحوه نمایش صحیح صفحه در دستگاه‌های موبایل اهمیت بیشتری دارد تا نوع خاص کدنویسی.

آیا می‌توان قالب کشسانی را بدون CSS Grid ساخت؟

بله، قالب کشسانی خیلی قبل از ظهور CSS Grid وجود داشت. می‌توان آن را با float، inline-block، flexbox یا کدنویسی جدولی پیاده سازی کرد. Flexbox و Grid ابزارهای مدرن و راحت‌ترین برای این کار هستند.

نتیجه

  • قالب کشسانی — کدنویسی بر اساس واحدهای نسبی که به هر عرض نمایشگری تطبیق می‌شود
  • واحدهای اصلی — درصدها برای کنتینرها، vw/vh برای بخش‌های viewport، rem برای فونت‌ها
  • کشسانی ≠ سازگارش‌پذیر — اولی متصل تغییر می‌کند، دومی از طریق بریکپوینت‌ها پله‌ای
  • محدودیت‌های ضروری — max-width و min-width از کشش/کوچک شدن غیرقابل خوانش جلوگیری می‌کند
  • رویکرد ترکیبی — شبکه کشسانی + media queries برای تغییرات جهانی — استاندارد صنعت
  • Flexbox و Grid — ابزارهای مدرن برای کدنویسی کشسانی که جایگزین float و جدول‌ها شدند

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید