راهنمایی برای توسعهدهندگان
اگه تا حالا با CSS Grid کار کرده باشی، میدونی که این تکنولوژی چقد قدرتمند و انعطافپذیره برای طراحی صفحات وب. اما مواقعی هست که شاید بخوای از Flexbox به جای Grid استفاده کنی، مخصوصا اگه دنبال سادهسازی کدهای CSSت هستی یا اگه پروژهای داری که بیشتر به قالبهای تکبعدی نیاز داره تا دوبعدی. گاهی وقتا تغییر نیازها یا بهبود سازگاری با مرورگرها دلیلی میشه که بخوای طرحبندی خودت رو از Grid به Flexbox تغییر بدی.
با استفاده از Flexbox، شما میتونید کنترل بیشتری روی تراز کردن و توزیع فضا درون یک container داشته باشید. برای بسیاری از نیازها، Flexbox کافیه و حتی میتونه با کد کمتر، کار شما راه بیندازه. دلایل مختلفی میتونه باعث شه که شما بخواین Grid رو به Flexbox تبدیل کنین، برخی از این دلایل میتونن شامل سادگی بیشتر در قالببندی، سازگاری بهتر با مرورگرهای قدیمی و یا نیاز به تجربه کاربری بهتر در دستگاههای مختلف باشه.
در این راهنما، شما با متدهایی که بتونید به راحتی CSS Grid Layout خودتون رو به Flexbox تبدیل کنید، آشنا میشید. این تبدیل ممکنه در ابتدا کمی پیچیده به نظر بیاد، اما اگه اصول هر دو تکنیک رو به خوبی درک کنید، میبینید که چقد راحت میتونید این کار رو بکنید.
همراه با مثالهای کد به شما نشان خواهیم داد که چگونه میتونید آرایشی که به صورت Grid طراحی کردید رو با استفاده از Flexbox بازتولید کنید. این کار به شما کمک میکنه که بیشتر خودتون رو با هر دو تکنولوژی وفق بدید و درک بهتری از چگونگی عملکرد هر یک داشته باشید.
<!-- نمونهای از کد Grid -->
<div class="grid-container">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
</div>
.grid-container {
display: grid;
grid-template-columns: auto auto auto;
gap: 10px;
}
-- نمونهای از کد تبدیل شده به Flexbox -->
<div class="flex-container">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
.flex-container {
display: flex;
justify-content: space-around;
gap: 10px;
}
شرح خط به خط کد:
<div class="grid-container">
این بخش، container اصلی برای آیتمهای Grid است.
.grid-container { display: grid; }
نمایش container را به Grid تغییر میدهد.
grid-template-columns: auto auto auto;
تعیین تعداد ستونها و عرض آنها در Grid.
<div class="flex-container">
container جدید برای Flexbox ایجاد شده است.
.flex-container { display: flex; }
نمایش container را به Flexbox تغییر میدهد.
justify-content: space-around;
آیتمها را با فاصله یکنواخت در درون container توزیع میکند.