سیستم شبکه ای
به لطف سیستم دوازده ستونی، پنج لایه پیشفرض پاسخگو، متغیرهای Sass و میکسها و دهها کلاس از پیش تعریفشده، از شبکه قدرتمند flexbox تلفن همراه اول ما برای ساخت طرحبندیهایی در همه شکلها و اندازهها استفاده کنید.
چگونه کار می کند
سیستم شبکه بوت استرپ از مجموعه ای از کانتینرها، ردیف ها و ستون ها برای چیدمان و تراز کردن محتوا استفاده می کند. این با فلکس باکس ساخته شده است و کاملاً واکنش گرا است. در زیر یک مثال و نگاهی عمیق به نحوه جمع شدن شبکه ارائه شده است.
با flexbox جدید یا ناآشنا هستید؟ این راهنمای flexbox ترفندهای CSS را برای پسزمینه، اصطلاحات، دستورالعملها و قطعههای کد بخوانید.
مثال بالا با استفاده از کلاس های شبکه از پیش تعریف شده ما، سه ستون با عرض مساوی در دستگاه های کوچک، متوسط، بزرگ و فوق العاده بزرگ ایجاد می کند. آن ستون ها در مرکز صفحه با والد .container
قرار دارند.
با تجزیه آن، در اینجا نحوه کار آن آمده است:
- کانتینرها وسیله ای برای وسط و قرار دادن افقی محتویات سایت شما هستند. برای
.container
عرض پیکسل پاسخگو یا.container-fluid
برایwidth: 100%
همه درگاههای دید و اندازههای دستگاه استفاده کنید. - سطرها بسته بندی برای ستون ها هستند. هر ستون دارای افقی
padding
(به نام ناودان) برای کنترل فضای بین آنها است.padding
سپس در ردیف هایی با حاشیه های منفی این امر خنثی می شود. به این ترتیب، تمام محتوای ستون های شما به صورت بصری در سمت چپ تراز می شود. - در طرحبندی شبکهای، محتوا باید درون ستونها قرار گیرد و فقط ستونها ممکن است فرزندان مستقیم ردیفها باشند.
- با تشکر از flexbox، ستون های شبکه بدون مشخص شده
width
به طور خودکار به عنوان ستون هایی با عرض مساوی طرح بندی می شوند. به عنوان مثال، چهار نمونه از.col-sm
اراده هر کدام به طور خودکار 25٪ از نقطه شکست کوچک و بالاتر عرض دارند. برای مثالهای بیشتر به بخش ستونهای طرحبندی خودکار مراجعه کنید . - کلاسهای ستون تعداد ستونهایی را که میخواهید از ۱۲ ستون ممکن در هر ردیف استفاده کنید، نشان میدهد. بنابراین، اگر میخواهید سه ستون با عرض مساوی در عرض داشته باشید، میتوانید از
.col-4
. - ستون
width
های s بر حسب درصد تنظیم می شوند، بنابراین آنها همیشه روان و نسبت به عنصر اصلی خود اندازه دارند. - برای ایجاد ناودان بین ستونها، ستونها افقی دارند
padding
، با این حال، میتوانیدmargin
از ردیفها وpadding
ستونها را با.no-gutters
روی علامت حذف کنید.row
. - برای پاسخگو بودن شبکه، پنج نقطه شکست شبکه وجود دارد، یکی برای هر نقطه شکست پاسخگو : همه نقاط شکست (بسیار کوچک)، کوچک، متوسط، بزرگ و بسیار بزرگ.
- نقاط شکست شبکه بر اساس پرسوجوهای رسانه حداقل عرض است، به این معنی که برای آن یک نقطه شکست و همه موارد بالای آن اعمال میشوند (مثلاً
.col-sm-4
برای دستگاههای کوچک، متوسط، بزرگ و بسیار بزرگ اعمال میشود، اما اولینxs
نقطه شکست نیست). - میتوانید از کلاسهای شبکه از پیش تعریفشده (مانند
.col-4
) یا میکسهای Sass برای نشانهگذاری معنایی بیشتر استفاده کنید.
از محدودیت ها و اشکالات پیرامون flexbox آگاه باشید ، مانند عدم توانایی در استفاده از برخی عناصر HTML به عنوان کانتینرهای انعطاف پذیر .
گزینه های شبکه
در حالی که Bootstrap از em
s یا rem
s برای تعریف بیشتر اندازه px
ها استفاده می کند، s برای نقاط شکست شبکه و عرض کانتینر استفاده می شود. این به این دلیل است که عرض درگاه نمایش بر حسب پیکسل است و با اندازه فونت تغییر نمی کند .
ببینید که چگونه جنبه های سیستم شبکه بوت استرپ در چندین دستگاه با یک جدول مفید کار می کند.
بسیار کوچک <576 پیکسل |
کوچک ≥576 پیکسل |
متوسط ≥768 پیکسل |
بزرگ ≥992 پیکسل |
بسیار بزرگ ≥1200 پیکسل |
|
---|---|---|---|---|---|
حداکثر عرض ظرف | هیچکدام (خودکار) | 540 پیکسل | 720 پیکسل | 960 پیکسل | 1140 پیکسل |
پیشوند کلاس | .col- |
.col-sm- |
.col-md- |
.col-lg- |
.col-xl- |
# ستون | 12 | ||||
عرض ناودان | 30 پیکسل (15 پیکسل در هر طرف یک ستون) | ||||
تودرتو | آره | ||||
ترتیب ستون | آره |
طرح بندی خودکار ستون ها
از کلاسهای ستون خاص نقطه شکست برای اندازهگیری آسان ستون بدون کلاس شمارهدار صریح مانند .col-sm-6
.
با عرض مساوی
برای مثال، در اینجا دو طرحبندی شبکهای وجود دارد که برای هر دستگاه و درگاه دید، از xs
تا xl
. هر تعداد کلاس بدون واحد را برای هر نقطه شکستی که نیاز دارید اضافه کنید و عرض هر ستون یکسان خواهد بود.
ستونهای با عرض مساوی را میتوان به چندین خط تقسیم کرد، اما یک باگ flexbox در Safari وجود داشت که مانع از کارکرد آن بدون صریح flex-basis
یا border
. راهحلهایی برای نسخههای مرورگر قدیمیتر وجود دارد، اما اگر بهروز هستید، لازم نیست.
تنظیم یک عرض ستون
طرحبندی خودکار برای ستونهای شبکه flexbox همچنین به این معنی است که میتوانید عرض یک ستون را تنظیم کنید و اندازه ستونهای خواهر و برادر را بهطور خودکار در اطراف آن تغییر دهید. می توانید از کلاس های شبکه از پیش تعریف شده (همانطور که در زیر نشان داده شده است)، میکس های شبکه، یا عرض های درون خطی استفاده کنید. توجه داشته باشید که ستون های دیگر بدون توجه به عرض ستون مرکزی، اندازه آنها تغییر می کند.
محتوای عرض متغیر
از col-{breakpoint}-auto
کلاس ها برای اندازه گیری ستون ها بر اساس عرض طبیعی محتوای آنها استفاده کنید.
چند ردیفی با عرض مساوی
.w-100
با قرار دادن یک جایی که می خواهید ستون ها به یک خط جدید شکسته شوند، ستون هایی با عرض مساوی ایجاد کنید که چندین ردیف را در بر می گیرند. با ترکیب کردن آن .w-100
با برخی ابزارهای نمایشگر پاسخگو ، وقفه ها را پاسخگو کنید .
کلاس های پاسخگو
شبکه بوت استرپ شامل پنج طبقه از کلاس های از پیش تعریف شده برای ساخت طرح بندی های پیچیده پاسخگو است. اندازه ستونهای خود را در دستگاههای بسیار کوچک، کوچک، متوسط، بزرگ یا بسیار بزرگ به هر نحوی که مناسب میدانید سفارشی کنید.
همه نقاط شکست
برای شبکههایی که از کوچکترین دستگاهها تا بزرگترین آنها یکسان هستند، از کلاسهای .col
and استفاده کنید. .col-*
زمانی که به ستونی با اندازه خاص نیاز دارید یک کلاس شماره گذاری شده را مشخص کنید. در غیر این صورت، با خیال راحت به .col
.
به صورت افقی روی هم چیده شده است
با استفاده از یک مجموعه واحد از .col-sm-*
کلاس ها، می توانید یک سیستم شبکه ای پایه ایجاد کنید که به صورت انباشته شروع می شود و در نقطه شکست کوچک ( sm
) افقی می شود.
ترکیب و مطابقت
آیا نمی خواهید ستون های شما به سادگی در برخی از لایه های شبکه جمع شوند؟ در صورت نیاز از ترکیبی از کلاس های مختلف برای هر ردیف استفاده کنید. برای درک بهتر نحوه کارکرد آن به مثال زیر مراجعه کنید.
ناودان
ناودان ها را می توان با استفاده از لایه های مخصوص نقطه شکست و کلاس های سودمند حاشیه منفی تنظیم کرد. برای تغییر ناودانها در یک ردیف معین، یک ابزار حاشیه منفی را روی .row
ابزارهای padding مطابق با .col
s جفت کنید. ممکن است برای جلوگیری از سرریز ناخواسته، با استفاده از ابزار padding تطبیق، والد .container
یا .container-fluid
والدین نیز تنظیم شوند.
در اینجا نمونه ای از سفارشی کردن شبکه بوت استرپ در lg
نقطه شکست بزرگ ( ) و بالاتر آورده شده است. ما .col
بالشتک را با والد افزایش دادیم، آن را با والد .px-lg-5
خنثی کردیم و سپس لفاف را با تنظیم کردیم ..mx-lg-n5
.row
.container
.px-lg-5
هم ترازی
برای تراز عمودی و افقی ستون ها از ابزارهای تراز flexbox استفاده کنید.
چیدمان عمودی
تراز افقی
بدون ناودان
ناودان های بین ستون ها در کلاس های شبکه از پیش تعریف شده ما را می توان با حذف کرد .no-gutters
. این margin
s های منفی را از .row
و افقی را padding
از تمام ستون های فرزند فوری حذف می کند.
در اینجا کد منبع برای ایجاد این سبک ها آمده است. توجه داشته باشید که بازنویسیهای ستون فقط به اولین ستونهای فرزند اختصاص داده میشوند و از طریق انتخابگر ویژگی هدف قرار میگیرند . در حالی که این یک انتخابگر خاصتر ایجاد میکند، همچنان میتوان لایههای ستونی را با ابزارهای فاصله سفارشیسازی کرد .
به طراحی لبه به لبه نیاز دارید؟ والد .container
یا .container-fluid
.
در عمل، در اینجا چگونه به نظر می رسد. توجه داشته باشید که میتوانید به استفاده از آن با سایر کلاسهای شبکه از پیش تعریفشده (از جمله عرض ستون، ردیفهای پاسخگو، ترتیبهای مجدد و موارد دیگر) ادامه دهید.
پیچیدن ستون
اگر بیش از 12 ستون در یک ردیف قرار گیرد، هر گروه از ستونهای اضافی، به عنوان یک واحد، روی یک خط جدید قرار میگیرند.
از 9 + 4 = 13 > 12، این div 4 ستونی به عنوان یک واحد پیوسته روی یک خط جدید پیچیده می شود.
ستون های بعدی در امتداد خط جدید ادامه می یابند.
ستون می شکند
شکستن ستون ها به یک خط جدید در flexbox به یک هک کوچک نیاز دارد: یک عنصر را با width: 100%
هر جایی که می خواهید ستون های خود را به یک خط جدید بپیچید اضافه کنید. معمولاً این با چندین .row
s انجام می شود، اما هر روش پیاده سازی نمی تواند این را توضیح دهد.
همچنین می توانید این وقفه را در نقاط شکست خاص با ابزارهای نمایش پاسخگو ما اعمال کنید .
سفارش مجدد
سفارش کلاس ها
از .order-
کلاس هایی برای کنترل نظم بصری محتوای خود استفاده کنید. این کلاس ها پاسخگو هستند، بنابراین می توانید order
نقطه شکست را تنظیم کنید (به عنوان مثال، .order-1.order-md-2
). شامل پشتیبانی 1
از 12
تمام پنج لایه شبکه است.
همچنین ریسپانسیو .order-first
و .order-last
کلاس هایی وجود دارند که به order
ترتیب با اعمال order: -1
و order: 13
( order: $columns + 1
)، عنصر یک عنصر را تغییر می دهند. این کلاس ها همچنین می توانند در صورت نیاز با کلاس های شماره گذاری شده مخلوط شوند .order-*
.
تنظیم ستون ها
میتوانید ستونهای شبکه را به دو روش آفست کنید: .offset-
کلاسهای شبکه پاسخگو و ابزارهای حاشیه ما . کلاسهای گرید برای مطابقت با ستونها اندازه میشوند، در حالی که حاشیهها برای طرحبندیهای سریع که در آن عرض افست متغیر است، مفیدتر هستند.
کلاس های افست
.offset-md-*
با استفاده از کلاس ها، ستون ها را به سمت راست حرکت دهید . این کلاس ها حاشیه سمت چپ یک ستون را با *
ستون افزایش می دهند. به عنوان مثال، روی چهار ستون .offset-md-4
حرکت می کند ..col-md-4
علاوه بر پاک کردن ستون در نقاط شکست پاسخگو، ممکن است نیاز به تنظیم مجدد آفست داشته باشید. این را در عمل در مثال شبکه مشاهده کنید .
ابزارهای حاشیه
با حرکت به flexbox در نسخه 4، میتوانید از ابزارهای حاشیه مانند .mr-auto
مجبور کردن ستونهای خواهر و برادر از یکدیگر استفاده کنید.
لانه سازی
برای قرار دادن محتوای خود با شبکه پیشفرض، یک ستون جدید .row
و مجموعهای از .col-sm-*
ستونها را در یک ستون موجود اضافه .col-sm-*
کنید. ردیفهای تودرتو باید شامل مجموعهای از ستونها باشد که مجموع آنها ۱۲ یا کمتر است (الزامی نیست که از همه ۱۲ ستون موجود استفاده کنید).
میکس های ساس
هنگام استفاده از فایلهای Sass منبع بوت استرپ، میتوانید از متغیرها و میکسهای Sass برای ایجاد طرحبندی صفحه سفارشی، معنایی و پاسخگو استفاده کنید. کلاسهای شبکه از پیش تعریفشده ما از همین متغیرها و میکسها استفاده میکنند تا مجموعه کاملی از کلاسهای آماده برای استفاده را برای طرحبندیهای پاسخگوی سریع ارائه دهند.
متغیرها
متغیرها و نقشهها تعداد ستونها، عرض ناودان و نقطه پرس و جو رسانهای را که در آن ستونهای شناور شروع میشود، تعیین میکنند. ما از اینها برای تولید کلاس های شبکه از پیش تعریف شده مستند شده در بالا و همچنین برای میکس های سفارشی فهرست شده در زیر استفاده می کنیم.
مخلوط ها
مخلوطها همراه با متغیرهای شبکه برای تولید CSS معنایی برای ستونهای شبکه جداگانه استفاده میشوند.
مثال استفاده
می توانید متغیرها را به مقادیر سفارشی خود تغییر دهید یا فقط از میکس ها با مقادیر پیش فرض خود استفاده کنید. در اینجا نمونه ای از استفاده از تنظیمات پیش فرض برای ایجاد یک طرح بندی دو ستونی با فاصله بین آنها آورده شده است.
سفارشی کردن شبکه
با استفاده از متغیرها و نقشههای Grid Sass داخلی، میتوان کلاسهای شبکه از پیش تعریفشده را بهطور کامل سفارشی کرد. تعداد لایهها، ابعاد درخواست رسانه و عرض ظرف را تغییر دهید—سپس دوباره کامپایل کنید.
ستون ها و ناودان ها
تعداد ستون های شبکه را می توان از طریق متغیرهای Sass تغییر داد. $grid-columns
برای تولید عرض (بر حسب درصد) هر ستون جداگانه استفاده می شود در حالی $grid-gutter-width
که عرض ناودان ستون را تنظیم می کند.
لایه های شبکه
با حرکت فراتر از خود ستونها، میتوانید تعداد لایههای شبکه را نیز سفارشی کنید. اگر فقط چهار سطح شبکه میخواستید، $grid-breakpoints
و $container-max-widths
را به چیزی شبیه به این به روز کنید:
هنگام ایجاد هر گونه تغییر در متغیرها یا نقشه های Sass، باید تغییرات خود را ذخیره کرده و دوباره کامپایل کنید. با انجام این کار، مجموعه ای کاملاً جدید از کلاس های شبکه از پیش تعریف شده برای عرض ستون ها، آفست ها و مرتب سازی تولید می شود. ابزارهای دید پاسخگو نیز برای استفاده از نقاط شکست سفارشی به روز خواهند شد. مطمئن شوید که مقادیر شبکه را در px
(نه rem
، em
یا %
) تنظیم کرده اید.