اجازه بدهید در ابتدا به شما بگویم که یاد گرفتن و استفاده از flexbox بسیار ساده میباشد. این سبک تازه و مدرن در زبان CSS بیشتر برای مشکلات Float و Block آبجکتها در داخل صفحه به وجود آمده است. من شنیده ام که بسیاری از طراحان وب سایت گفته اند که flexbox بسیار پیچیده و مشکل میباشد. ولی این رو بارها و بارها به خود بگویید که یاد گرفتن flexbox بسیار ساده میباشد.
یکی از تکنیک های یاد گرفتن flexbox این است که همه چیز بسیار روشن و شفاف باشد. در ابتدا ما میخواهیم بگوییم که flexbox چیست و چرا به وجود آمده است.
FLEXBOX چیست؟
Flexbox یا همان Flexible Box Layout Model هم نامیده میشود, به مجموعه ای از قوانین CSS گفته میشود که میتواند طراحی و چیدمان را برای حالتهای Responsive بسیار راحتتر نماید.
Flexbox یکی از اولین تکنیک های css میباشد که در دنیای مدرن وب امروزه مورد استفاده قرار میگیرد. این کاملا منصفانه و درست است که بگوییم تا قبل از معرفی شدن flexbox هیچ تکنیک مطمئن و معتبری برای پیاده سازی وب سایت های ریسپانسیو وجود نداشته است.
بسیاری از روشهای هک در CSS برای این چنین کارهایی وجود داشته است مانند display: inline-block و مانند اینها. اما همه اینها در وب سایت های ریسپانسیو مشکلاتی را هم داشته اند. به همین دلیل میباشد که بسیاری از وب سایت ها هنوز هم از زبان جاوا اسکریپت برای ریسپانسیو نمودن استفاده مینمایند که امروزه امری بیهوده به نظر میرسد.
Flexbox برای چه طراحی هایی مناسب میباشد؟
Flexbox توسط سازمان W3C ارائه شد و در نگاه اول برای طراحی آبجکتها در داخل صفحه مورد استفاده قرار میگیرد مانند طراحی بخش منوها در یک صفحه و نه کل صفحه.
دلیل اینکه از flexbox برای طراحی کل صفحه استفاده نمی نمایند این است که flexbox همراه و در کنار زبان css میباشد که معمولا با نام تخصصی Grid Layout Module در بین طراحان نیز شناخته میشود. Grid layout برای طراحی کل ساختار یک صفحه وب سایت هم میتواند مورد استفاده قرار بگیرد. اما متاسفانه بسیاری از محدودیتها میتواند در آن وجود داشته باشد. حتی آخرین ورژن از مرورگر گوگل کروم هم میتواند با آن مشکل داشته باشد.
Styling components
Flexbox برای طراحی و دادن Style به بسیاری از عناصر و آبجکتها در صفحه وب سایت مناسب میباشد. چنانچه از قدرت اصلی flexbox استفاده نمایید, میتواند به بسیاری از روش های دیگر برتری داشته باشد. بطوریکه توسط flexbox میتوانید به جای فرمت دهی تک تک آبجکتها, آنها را به صورت گروه درآورده و style مورد نظر را به آنها بدهید.
زمانی که از flexbox استفاده مینماییم به ندرت احتیاج خواهید داشت تا به صورت انفرادی آیتم ها در داخل صفحه وب را موقعیت دهی نمایید. یکی از بهترین گزینه ها برای موقعیت دهی آبجکت ها در داخل صفحه وب سایت محسوب میشود. یکی دیگر از مزیت های دیگر flexbox برای کنترل موقعیت دهی مجموعه ای از آیتم ها در کنار یکدیگر میباشد.
به طور مشخص flexbox به دو بخش اساسی تقسیم بندی میشود. دسته اول خصوصیت هایی که به آبجکت های Container نسبت داده میشود و دسته دوم خصوصیت هایی که به آبجکت های داخلی یا Child آنها نسبت داده میشود.
پشتیبانی مرورگرها
پشتیبانی در مرورگرها سوال بسیار مهم و البته پیچیده ای میباشد. این مسئله میتواند بسیار پیچیده باشد چراکه flexbox دارای چندین نوع نوشتاری و ساختار میباشد. در ابتدا بعضی از شرکت های ارائه دهنده مرورگرها در پشتیبانی از flexbox مردد بودند و به همین دلیل چند ورژن از flexbox به وجود آمد.
خوشبختانه توسط CSS Browser Prefix میتوانیم از بسیاری از قابلیتهای آن حتی در مرورگرهای قدیمی هم استفاده نماییم. بر طبق گزارشهای سایت caniuse.com تنها مرورگر IE9 کمی مشکلاتی را به وجود آورده است.
خوب پشتیبانی نشدن Flex Box در مرورگر IE9 چندان مهم نمیباشد و برای بسیاری از کاربران و طراحان وب سایت همیشه بدون سر و صدا و حاشیه بوده است.
نسخه های مختلف flexbox
از همکاری و هماهنگی بین بسیاری از سازمان ها و شرکت ها و کمپانی های مرورگرها تشکر مینماییم. هم اکنون بسیاری از مرورگرها به خوبی بسیاری از قابلیتهای flexbox را پشتیبانی مینمایند.
در حال حاضر سه ورژن از flexbox وجود دارد که شما طراحان وب سایت باید از آنها اطلاع داشته باشید.
ورژن قدیمی
ورژن میانی
ورژن جدید
نسخه های مختلف مرورگرها ورژن های متفاوتی از flexbox را پشتیبانی مینمایند. به عنوان مثال مرورگر IE10 نوع ورژن میانی را پشتیبانی میکند.
بر طبق اصول نوشتن CSS Browser Prefix میتوانیم flexbox را از مرورگرهای قدیمی تا مرورگرهای جدید بنویسیم. با وجود اینکه مرورگرهایی که ورژن های جدید را پشتیبانی مینمایند دیگر دستورات ورژن قدیمی flexbox را نخواهند خواند.
رمز و راز فهمیدن flexbox
مهم این است که متوجه شوید همیشه flexbox ربطی به box بودن آبجکت ها در داخل صفحه ندارد. تا به حال تمامی طراحی در صفحات وب سایت بر اساس محور x و y بیان شده است.
به یاد داشته باشید flexbox از نوع vector میباشد. به این معنا که برای استفاده از آن کافی است به طول و درجه آن اشاره نمایید. میتوانید بدون تاثیر گذاشتن بر روی طول آبجکت ها زاویه آنها را تغییر دهید و بالعکس.
از نگاه دیگر بسیاری از مفاهیم جدید که در flexbox مطرح شده است ممکن است در ابتدا پیچیده به نظر بیاید.
طراحی وب سایت