چیدمان های ماکرو

طرح‌بندی‌های ماکرو، سازماندهی بزرگ‌تر و در سطح صفحه رابط کاربری شما را توصیف می‌کنند.

یک قاب سیمی از طرح دو ستونی، در کنار همان طرح تک ستونی برای نمای باریک‌تر.

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

<body>
  <header>…</header>
  <main>
    <article>…</article>
    <aside>…</aside>
  </main>
  <footer>…</footer>
</body>

وقتی این اجزای سطح صفحه را مرتب می‌کنید، در حال طراحی یک طرح‌بندی کلان هستید: یک نمای سطح بالا از صفحه شما. با استفاده از پرس‌وجوهای رسانه‌ای، می‌توانید قوانینی را در CSS ارائه دهید که نحوه تنظیم این نما را با اندازه‌های مختلف صفحه نمایش توصیف می‌کند.

شبکه

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

@media (min-width: 45em) {
  main {
    display: grid;
    grid-template-columns: 2fr 1fr;
  }
}

فلکس‌باکس

برای این طرح‌بندی خاص، می‌توانید از flexbox نیز استفاده کنید. استایل‌ها به این شکل خواهند بود:

@media (min-width: 45em) {
  main {
    display: flex;
    flex-direction: row;
  }

  main article {
    flex: 2;
  }

  main aside {
    flex: 1;
  }
}

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

آیا به یک پرس و جوی رسانه‌ای نیاز دارید؟

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

فرض کنید صفحه‌ای پر از اجزای کارت دارید. کارت‌ها هرگز از 15em عریض‌تر نیستند و شما می‌خواهید تا جایی که در یک خط جا می‌شود، کارت‌ها را در آن قرار دهید. می‌توانید کوئری‌های رسانه‌ای با نقاط شکست مانند 30em ، 45em و 60em بنویسید، اما این کار بسیار خسته‌کننده و نگهداری آن دشوار است.

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

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));
  grid-gap: 1em;
}

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

.cards {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1em;
}
.cards .card {
  flex-basis: 15em;
  flex-grow: 1;
}

با اعمال برخی قوانین هوشمند در flexbox یا grid، می‌توان طرح‌بندی‌های ماکروی پویا را با حداقل CSS و بدون هیچ‌گونه media query طراحی کرد. این کار برای شما کمتر است - در عوض، مرورگر را مجبور به انجام محاسبات می‌کنید. برای دیدن چند نمونه از طرح‌بندی‌های مدرن CSS که بدون نیاز به media query روان هستند، به 1linelayouts.com مراجعه کنید.

درک خود را بررسی کنید

دانش خود را در مورد طرح‌بندی‌های ماکرو آزمایش کنید.

کدام جمله طرح‌بندی‌های ماکرو را به بهترین شکل توصیف می‌کند؟

طرح‌بندی‌هایی که شامل طرح‌بندی‌های دیگر هستند.
دوباره امتحان کنید! اکثر طرح‌بندی‌ها شامل طرح‌بندی‌های دیگری هستند.
وقتی در یک طراحی از flexbox یا grid استفاده می‌شود.
دوباره امتحان کنید! نه flexbox و نه grid هیچ کدام چیز خاصی برای طرح‌بندی‌های ماکرو ندارند.
طرح‌بندی‌های سطح پایین که بخش کوچکی از صفحه نمایش را پوشش می‌دهند.
دوباره امتحان کنید!
طرح‌بندی‌های سطح بالا که بخش زیادی از صفحه نمایش را پوشش می‌دهند.
🎉 طرح‌بندی‌های ماکرو، طرح‌بندی‌های اساسی برای یک صفحه هستند که بخش بزرگی از فضای بصری را پوشش می‌دهند و اغلب با کوئری‌های رسانه‌ای اندازه صفحه تنظیم می‌شوند.

طرح‌بندی‌های ماکرو همیشه از کوئری‌های رسانه‌ای برای تطبیق با اندازه‌های مختلف صفحه نمایش استفاده می‌کنند؟

درست
دوباره امتحان کنید! یک طرح‌بندی ماکرو با استفاده از کوئری‌های رسانه‌ای تعریف نمی‌شود.
نادرست
🎉 طرح‌بندی‌های ماکرو می‌توانند بدون نیاز به پرس‌وجوی رسانه‌ای، متناسب با محتوا، پر کردن فضای موجود و موارد دیگر، خود را تطبیق دهند.

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