سیستم شبکه بندی (Grid) در بوت استرپ

saeed410

Member
در این آموزش قصد داریم [h=1]سیستم شبکه بندی بوت استرپ[/h] را بحث کنیم. [h=2]شبکه (Grid) چیست؟[/h] با مراجعه به ویکی پدیا تعریف زیر را از شبکه داریم:
شبکه در طراحی گرافیکی به یک ساختار (معمولاً دو بعدی) گفته میشود که برای ایجاد محتوای ساخت یافته از خطوط مستقیم عمودی و افقی استفاه میکند. از این سیستم برای ایجاد لایه های متناسب با چاپ استفاده میشود. همچنین در طراحی وب برای ایجاد لایه های متناسب و سازگار با یکدیگر از سیستم شبکه بندی استفاده میشود.
سیستم شبکه بندی در بوت استرپ صفحه وب ما را به قسمت های مساوی تقسیم میکند. همانند یک برگه در نقشه کشی ؛ با این کار میتوانیم سازگاری و تناسب بین اشیاء مختلف در وب سایت خودمون رو حفظ کنیم.
[h=2]سیستم شبکه بندی در بوت استرپ چیست؟[/h] باتوجه به تعریف رسمی سایت بوت استرپ ؛ سیستم شبکه بندی در بوت استرپ به صورت زیر تعریف میشود:
بوت استرپ شامل سیستم شبکه بندی متحرک و با رویکردی Mobile First است که عرض صفحه را به 12 ستون مساوی تقسیم میکند. اندازه ستون ها باتوجه به عرض دستگاه کم و زیاد میشوند. بوت استرپ شامل کلاسهای از پیش تعریف شده ای است که با استفاده از آنها میتوانید به لایه بندی صفحات سرعت بخشید ، همچنین دارای میکسین هایی است که میتوانید لایه های سفارشی ایجاد کنید.
در مورد استراتژی Mobile First در قسمت های قبل صحبت شده است. در این روش طراحی ، طراح باید تمام تمرکز خود را روی دستگاه ها با عرض و اندازه های کوچک قرار دهد و لایه بندی و استایل را برای این نوع دستگاه ها انجام دهد ، سپس میتواند با استفاده از کوئری های مدیا برای دستگاههای بزرگتر مثل تبلت و کامپیوترهای رومیزی نیز ، طراحی خود را سازگار کند. اولویت اول در این روش طراحی دستگاههای موبایل هستند.
bootstrap-Grid-System.JPG

بوت استرپ برای تمام ستونها ، کلاسهای از پیش تعریف شده ایی دارد. همچنین اسامی استفاده شده دارای ساختار هستندبنابراین استفاده از آنها و حفظ کردن آنها راحت است.
[h=2]کلاسهای CSS برای شبکه بندی در بوت استرپ :[/h] بوت استرپ برای 4 نوع دستگاه با اندازه های مختلف راهکارهایی دارد. کلاسهای ایجاد شده به صورت زیر هستند:

  • کلاس xs (برای تلفن های همرا ) - نام کامل : EXtra Small
  • کلاس sm (برای تبلتها )- نام کامل small
  • کلاس md (برای لپ تاپ ها و صفحه نمایش ها نسبتاً بزرگ) - نام کامل medium
  • کلاس lg (برای صفحه نمایش ها با اندازه های بزرگ ) - نام کامل large
bootstrp-Grid-System-features.JPG

[h=2]قوانین استفاده از سیستم شبکه بندی :[/h]
  • در شبکه بندی بوت استرپ صفحه به سطرهایی تقسیم میشود که هر سطر به نوبه خود به 12 ستون مساوی تقسیم میشود. برای استفاده از این قابلیتها باید از div ها به شیوه درست استفاده کرد. باید سطرها را داخل کلاس .container قرار داد.
  • محتواها باید در داخل ستونها قرار بگیرند. و ستونها باید بلافاصله بعد از تعریف یک سطر داخل آن اولین تگ باشند
  • کلاسهای از پیش تعریف شده ایی مثل .row و .col-*-* برای لایه بندی سریع وجود دارند.
[h=2]ساختار پایه کدهای Html برای استفاده از شبکه بندی:[/h]
<div class="container">
<div class="row">
<div class="col-*-*">​
محتوا​
</div>
</div>
<div class="row">
<div class="col-*-*"></div>
<div class="col-*-*"></div>
<div class="col-*-*"></div>
</div>
<div class="row">
...
</div>
</div>​
از این ساختار باید داخل تگ Body خود استفاده کنید. در قسمت قبل ساختار کلی صفحه html را مورد بررسی قرار دادیم. در اینجا ساختار کلی داخل تگ body صفحه را مشخص کرده ایم. در اینجا کلاسهایی وجود دارند که با علامت ستاره(*) علامت دار شده اند. در این کلاسها بجای ستاره اول میتوانید اندازه دستگاه را بنویسید و بجای ستاره دوم تعداد ستونهای اشغال شده توسط محتوا.به عنوان مثال در Div زیر ما با قرار دادن md به جای ستاره اول میگوییم این اندازه برای دستگاههای متوسط است ، و اندازه ستون را 8 در نظر میگیریم:​
<div class="col-md-8"></div>​
در مثال زیر از لایه بندی ترکیبی استفاده شده است. به این صورت که برای دستگاههای خیلی کوچک 12 ستون و برای دستگاههای متوسط 6 ستون برای div در نظر گرفته شده است:​
<div class="col-md-6 col-sm-12"></div>​
برای لایه بندی ابتدا باید یک Div با کلاس container یا container-fluid داشته باشیم. سپس داخل این div یک سطر تعریف میکنیم که کلاس این div باید row باشد. در داخل هر سطر میتوانیم div های مختلفی داشته باشیم. و برای هر کدام تعیین کنیم چه تعداد ستون از 12 ستون را اشغال کنند. همچنین میتوانید از سیستم ستون بندی به صورت سلسله مراتبی نیز استفاده کنید.​
به عبارت دیگر هر ستون را میتوان به 12 ستون تقسیم کرد. در ادامه با چند مثال دیگر کار فرآیند لایه بندی را بیشتر توضیح میدهیم:​
[h=2]1-مثال اول استفاده از بوت استرپ :[/h]
در این مثال یک سطر تعریف میکنیم که داخل آن دو ستون با اندازه های برابر هر کدام 6 ستون را اشغال میکنند. کد کامل صفحه به صورت زیر است. این کد را داخل فایل index.html که در قسمت قبل ایجاد کرده اید کپی کنید و ذخیره کنید:​
<!DOCTYPE html>
<html>
<head>
<title>قالب بوت استرپ </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/
html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/
respond.min.js"></script>
<![endif]-->
</head>
<body>

<div class="container">

<div class="row">

<div class="col-md-6" style="background-color: #dedef8; box-shadow:
inset 1px -1px 1px #444, inset -1px 1px 1px #444;">
<p>محتوا
</p>

<p>محتوا
</p>
</div>

<div class="col-md-6" style="background-color: #dedef8;box-shadow:
inset 1px -1px 1px #444, inset -1px 1px 1px #444;">
<p>محتوا
</p>

<p>​
محتوا </p>
</div>
</div>
<script src="https://code.jquery.com/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>

[h=2]راست به چپ کردن تمام آیتم ها و سازگاری بوت استرپ با فارسی:[/h]
برای سازگاری کامل با فارسی و راست به چپ کردن ، نیاز به کار زیادی نیست. در واقع این کار قبلاً صورت گرفته است. برای اینکه پروژه های بوت استرپ شما از فارسی پشتیبانی کند کافی است این فایل را دانلود کنید و بعد از استفاده از فایل css بوت استرپ اصلی این فایل را نیز به پروژه اضافه کنید. به صورت زیر:​
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-rtl.min_.css" rel="stylesheet">​
تصویر دموی این کد پس از استفاده از استایل شیت فارسی به صورت زیر است:​
demo-Bootstrap-Example1.JPG
در صورتی که میخواهید فاصله های کناری در مرورگر وجود نداشته باشد و صفحه به صورت عرض کامل نمایش داده شود بجای استفاده از کلاس container از کلاس container-fluid استفاده کنید.​
[h=2]2- مثال دوم استفاده از بوت استرپ :[/h]
فرض کنید میخواهیم صفحه ایجاد کنیم که در دستگاههای کوچک (sm) به صورت 2 ستونی باشد. همچنین یک ستون 75 درصد از عرض صفحه را اشغال کند و ستون دیگر 25 درصد از عرض صفحه را .​

  • [*=right]نکته : عرض دستگاههای کوچک از 768 پیکسل تا 991 پیکسل است.


  • [*=right]برای اختصاص کلاسها به دستگاههای کوچک باید از کلاسهای col-sm-colspan استفاده کنیم.
بنابراین برای این مثال باید div هایی که دو ستون را تعریف میکنند به صورت زیر باشند:​
<div class="col-sm-3">محتوا</div>
<div class="col-sm-9">محتوا</div>​
کد کامل این صفحه به صورت زیر است:​
<!DOCTYPE html>
<html>
<head>
<title>قالب بوت استرپ </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-rtl.min_.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/
html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/
respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container-fluid">
<h1>Hello World!</h1>
<div class="row">
<div class="col-sm-3" style="background-color:lavender;">
<p>​
محتوا.</p>
</div>
<div class="col-sm-9" style="background-color:lavenderblush;">
<p>محتوا</p>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>​
در این کد به دلیل اینکه ما از کلاس container-fluid استفاده کرده ایم محتویات ما به صورت تمام صفحه نمایش داده میشوند. همچنین مادامی که عرض صفحه نمایش کاربر بیشتر از 768 پیکسل باشد تصویر به صورت زیر نمایش داده میشود:​
demo-Bootstrap-Example2.JPG

اما اگر عرض صفحه نمایش کوچکتر از 768 پیکسل شود تمام ستون ها به صورت پشته نمایش داده میشوند:​
demo-Bootstrap-Example2-1.JPG
[h=2]مثال 3 استفاده از بوت استرپ : دستگاههای متوسط[/h] در مثال قبل دو div ایجاد کردیم که در دستگاههای کوچک به صورت 25 -75 در کنار یکدیگر قرار داشتند. اما اگه دقت کنید این چینش در دستگاههای متوسط زیاد جالب به نظر نمیرسه. در اینجا قصد داریم همان مثال قبل را به گونه ایی تغییر دهیم که در دستگاههای متوسط اندازه ستونها بایگدیگر برابر باشند. برای این کار میتوانیم از کلاس col-md-6 استفاده کنیم .بنابراین در اینجا فقط کافیست دو div ایجاد شده را به صورت زیر تغییر دهید:
<div class="col-sm-3 col-md-6">محتوا</div>
<div class="col-sm-9 col-md-6">محتوا</div>​
بعد از اعمال این تغییرات و ذخیره آنها ، صفحه index.html را در مرورگر باز کنید و اندازه مرورگر را کوچک و بزرگ کنید.​

  • [*=right]نکته: اندازه عرض صفحه نمایش در دستگاههای متوسط در بوت استرپ 992 پیکسل تا 1199 پیکسل مشخص شده است.


  • [*=right]برای استفاده از کلاسهای بوت استرپ برای استایل دهی در دستگاههای متوسط از کلاسهای col-md-span استفاده میکنیم.
[h=2]مثال 4 استفاده از بوت استرپ : دستگاههای بزرگ[/h]
در مثال قبل اندازه ستونها در دستگاههای متوسط را با هم برابر کردیم. در این مثال میخواهیم اندازه یک ستون را در دستگاههای بزرک به 4 و ستون دیگر را به 8 تغییر دهیم.​

  • [*=right]نکته :اندازه عرض صفحه نمایش در دستگاههای بزرگ در بوت استرپ بیشتر از 1200 پیکسل است.
    [*=right]برای استفاده از کلاسهای بوت استرپ برای استایل دهی در دستگاههای بزرگ از کلاسهای col-lg-span استفاده میکنیم.
بنابراین کافی است تغییرات زیر را اعمال کنیم:​
<div class="col-sm-3 col-md-6 col-lg-4">محتوا</div>
<div class="col-sm-9 col-md-6 col-lg-8">محتوا</div>​
کد کامل این صفحه بعد از اعمال تغییرات به صورت زیر خواهد بود:​
<!DOCTYPE html>
<html>
<head>
<title>قالب بوت استرپ </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/bootstrap-rtl.min_.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/
html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/
respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container-fluid">
<h1>Hello World!</h1>
<div class="row">
<div class="col-sm-3 col-md-6 col-lg-4" style="background-color:lavender;">
<p>محتوا.</p>
</div>
<div class="col-sm-9 col-md-6 col-lg-8" style="background-color:lavenderblush;">
<p>محتوا.</p>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>​
در این مثال صفحه ایی با دو ستون داریم که در دستگاههای بسیار کوچک با عرض کمتر از 768 پیکسل تمام ستون ها روی هم و به صورت پشته نمایش داده میشوند. در دستگاههای با اندازه بزرگتر از 768 پیکسل و کوچکتر از 991 پیکسل ستون ها در کنار یک دیگر و به صورت 25%- 75 % قرار میگیرند. در دستگاههای با اندازه بزرگتر از 992 پیکسل و کوچکتر از 1199 پیکسل به صورت 50 % -50 % در کنار یکدیگر قرار میگیرند. و در دستگاههایی که عرض آنها بیشتر از 1200 پیکسل است به صورت 33%-66% در کنار یکدیگر قرار میگیرند.​
در آموزشهای بعدی مثال های بیشتری از سیستم شبکه بندی خواهیم زد .همچنین بقیه کلاسهای css مورد استفاده برای استایل دهی به اشیاء را بررسی خواهیم کرد.

در گروه: بوت استرپ و CSS
منبع : سیستم grid در بوت استرپ
 

جدیدترین ارسال ها

بالا