آموزش Flexbox - قسمت اول
همه ما با Layout بندی فعلی از طریق CSS آشنایی داریم (display ، margin: auto; ، max-width ، position ، float ، clear ، media query ، inline-block و ...) و تقریبا همه مشکلات آنها را میدانیم. برای مثال حتما با مشکل Float که به وسیله تکنیک Clearfix حل می شود برخورد داشتهاید؛ خبر خوبی که برای طراحان وب وجود دارد این است که با معرفی Flexbox نه تنها تمامی این موارد برطرف شدهاند، بلکه قابلیت های بسیار خوب و کاربردی به کمک این دستور در اختیار شما قرار گرفته است.
Flexbox چیست؟
Flexbox یک مدل Layout بندی جدید است که با CSS3 معرفی شد و هدف آن ایجاد لایه بندی پویا و انعطاف پذیر است. در ادامه به معرفی قابلیت ها و آموزش استفاده ازFlexbox می پردازم.
برخلاف آنچه اکثر طراحان وب فکر میکنند Flexbox خیلی هم تازه نیست! Flexbox ابتدا در ژولای 2009 با سینتکس display : box معرفی شد و بعد از یک سری تغییرات در مارس سال 2011 سینتکس آن تغییر یافت و به display: flexbox تبدیل شد. سپس در سپتامبر 2012 مرحله ی سوم بازبینی از سینتکس این قابلیت توسط W3C یا همان کنسرسیوم شبکه جهانی وب انجام گرفت که در نهایت به شکل کنونی که همان display: flex است تغییر یافت.
بار برخلاف ۲ مرتبه گذشته این display : flex مورد تائید W3C واقع شد و این Syntax به عنوان سینتکس همیشگی فلکس باکس معرفی شد.
در حال حاضر تمامی مرورگرها به جز اینترنت اکسپلورر ۸ و ۹ از flexbox پشتیبانی میکنند پس با خیال راحت میتوانید از این قابلیت استفاده کنید.
نحوه ایجاد Flexbox
برای استفاده از Flexbox نیاز به Flex-container و Flex-item دارید.
Flex-container همان محدوده ای است که قرار است است در بر گیرنده چندین آیتم باشد. به عنوان مثال فرض کنید که شما ۳ div دارید که میخواهید این ۳ div در کنار یکدیگر قرار بگیرند. در این حالت شما یک div کلی خواهید داشت (که اصطلاحا به آن Flex-container گفته میشود) و در داخل آن ، ۳ عدد div جداگانه قرار خواهید داد (که همان Flex-item خواهند بود).
سورس کد:
<div> flex-container
<div> flex-item</div>
<div> flex-item</div>
<div> flex-item</div>
</div>
ساخت Flex-container به وسیله خاصیت display
برای ایجاد flex-container به المنت مورد نظر display: flex یا display: inline-flex میدهیم. در آن حالت تمامی المنتهای درون flex-container به flex-item تبدیل می شوند. (کار inline-flex شبیه flex است با این تفاوت که باعث می شود عنصر نگهدارنده خاصیت inline بگیرد).
.container {
display: flex;
}
یا
.container {
display: inline-flex;
}
ترتیب نمایش flex-item ها با خاصیت flex-direction
قدم بعدی انتخاب نحوه نمایش flex-item ها است. تا اینجا ما یک div ساخته ایم که قرار است ۳ div که همان flex-item ها هستند را در داخل خود جای دهد.
به طور کلی ما ۴ حالت برای نمایش این div ها خواهیم داشت که در ادامه به همراه عکس توضیح داده شده است. برای اینکه تمامی flex-item ها به صورت ردیف یا ستون در کنار هم قرار بگیرند از خاصیت flex-direction استفاده می کنیم.
.container
{
flex-direction: row;
flex-direction: row-reverse;
flex-direction: column;
flex-direction: column-reverse;
}
-
row : این مقدار برای چیدمان افقی به کار میرود. اگر صفحه شما RTL باشد چیدمان از راست به چپ انجام می شود در غیر اینصورت آیتم ها از چب به راست قرار میگیرند.
-
Column : اگر میخواهید چیدمان عمودی داشته باشید از این مقدار استفاده کنید.
-
row-reverse و column-reverse : این دو دقیقا برعکس ۲ مورد قبلی بودن. اگر در حالت row چیدمان آیتم ها از چپ به راست بود در row-reverse به صورت برعکس آن یعنی راست به چپ خواهد بود. همچنین در column-reverse هم چیدمان آیتم ها از پایین به بالا خواهد بود.
در پایین شما میتوانید نتیجه این کدها را مشاهده کنید:
See the Pen FlexBox1 by Ali Haddadkar (@ali_haddadkar) on CodePen.
قسمت اول سری آموزش فلکس باکس به اتمام رسید در این قسمت مقدمهای برای آموزش Flexbox عنوان کردیم. در جلسات آینده با خصوصیات بیشتری آشنا خواهید شد.
به روز رسانی
جلسه بعدی آموزش Flexbox در سایت قرار گرفت. شما میتوانید قسمت دوم آموزش Flexbox را از اینجا مطالعه کنید.