Gridهای بسیار کوچک در بوت استرپ 4

درسنامه درس 26 از سری آموزش Bootstrap
Grid های بسیار کوچک در بوت استرپ 4

طرح عمودی به افقی

همانطور که م یدانید گرید در بوت استرپ انواع مختلفی دارد؛ بسیار کوچک، کوچک، متوسط، بزرگ و بسیار بزرگ. ما می خواهیم در این مقاله و مقاله ی آینده این grid ها را با ذکر مثال بررسی کنیم.

ابتدا یک مثال ساده برایتان می آورم؛ می خواهیم یک grid ساده داشته باشیم که در ابتدا به صورت stacked (عناصر روی هم باشند) بوده و در صفحات بزرگ تر افقی شود و دیگر عناصر روی هم نباشند. در این مثال عرض را به صورت 50 درصد تقسیم کرده ایم اما در صفحات بزرگ این مقدار 100 درصد می شود و کل صفحه را می گیرد:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h1>Grid Example</h1>
  <p>This example demonstrates a 50%/50% split on small, medium, large and xlarge devices. On extra small devices, it will stack (100% width).</p>      
  <p>Resize the browser window to see the effect.</p> 
  <div class="container">     
    <div class="row">
      <div class="col-sm-6 bg-success">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<br>
        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
      </div>
      <div class="col-sm-6 bg-warning">
        Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto.    
      </div>
    </div>
  </div>
</div>
    
</body>
</html>

مشاهده ی خروجی در JSBin

همانطور که می دانید شماره های کلاس *-col-sm. نشان دهنده ی تعداد ستون هایی است (از 12 تا) که <div> اشغال می کند، بنابراین col-sm-6. یعنی اشغال 6 ستون از 12 تا که یعنی 50 درصد صفحه. تعداد مجموع ستون های اشغال شده نیز نباید بیشتر از 12 بشود.

همچنین شما می توانید با تغییر container. به container-fluid. طراح هایی با عرض مشخص را به طرح های تمام عرض تبدیل کنید:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container-fluid">
  <h1>Grid Example</h1>
  <p>This example demonstrates a 50%/50% split on small, medium, large and xlarge devices. On extra small devices, it will stack (100% width).</p>      
  <p>Resize the browser window to see the effect.</p> 
  <div class="container-fluid">    
    <div class="row">
      <div class="col-sm-6 bg-success">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<br>
        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
      </div>
      <div class="col-sm-6 bg-warning">
        Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto.    
      </div>
    </div>
  </div>
</div>
    
</body>
</html>

مشاهده ی خروجی در JSBin

البته شما می توانید بدون تعیین کردن تعداد ستون ها *-col-size. تنها کلاس col-size. را برای ستون ها قرار دهید. بدین صورت تمام آن ها عرض یکسان دریافت خواهند کرد.

کلاس های گرید در بوت استرپ که آخرشان size دارند مشخص می کنند که در چه عرضی عنصر ما واکنش گرا شود:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container-fluid">
  <h1>Auto Layout Columns</h1>
  <p>In Bootstrap 4, there is an easy way to create equal width columns: just use the <code>.col-size</code> class on a specified number of col elements. Bootstrap will recognize how many columns there are, and each column will get the same width.</p>
  <p>Two columns: 50% width on all screens, except for extra small (100% width on screens less than <strong>576px</strong> wide)</p>
  <div class="container-fluid">
    <div class="row">
      <div class="col-sm bg-success">1 of 2</div>
      <div class="col-sm bg-warning">2 of 2</div>
    </div>  
  </div>
  <br>
  
  <p>Four columns: 25% width on all screens, except for extra small (100% width on screens less than <strong>576px</strong> wide)</p>
  <div class="container-fluid">
    <div class="row">
      <div class="col-sm bg-success">1 of 4</div>
      <div class="col-sm bg-warning">2 of 4</div>
      <div class="col-sm bg-success">3 of 4</div>
      <div class="col-sm bg-warning">4 of 4</div>
    </div>  
  </div>
</div>

</body>
</html>

مشاهده ی خروجی در JSBin

grid های extra small (بسیار کوچک)

بسیار کوچک کوچک متوسط بزرگ بسیار بزرگ
پیشوند کلاس .col- .col-sm- .col-md- .col-lg- .col-xl-
عرض صفحه کمتر از 576px بیشتر یا مساوی 576px بیشتر یا مساوی 768px بیشتر یا مساوی 992px بیشتر یا مساوی 1200px

تصور کنید که یک طرح ساده و دو ستونه داریم و می خواهیم این عرض دو ستون به صورت 25 درصد و 75 درصد تقسیم شوند. برای این کار کلاس های زیر را به دو ستون خود اضافه می کنیم:

<div class="col-3">....</div>
<div class="col-9">....</div>

این مثال باعث می شود در تمام حالت ها (بسیار کوچک، کوچک، متوسط و...) ستون های ما به صورت 25 درصد و 75 درصد تقسیم شده باشند:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container-fluid">
  <h1>Extra Small Grid</h1>
  <p>The following example will result in a 25%/75% split on all devices.</p>
  <div class="container-fluid">
    <div class="row">
      <div class="col-3 bg-success">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<br>
        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
      </div>
      <div class="col-9 bg-warning">
        Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
      </div>
    </div>
  </div>
</div>

</body>
</html>

مشاهده ی خروجی در JSBin

برای تقسیم ستون ها به صورت 33.3 درصد و 66.6 درصد باید از ستون های col-4. و col-8. و برای تقسیم ستون ها به صورت 50 درصد باید از دو کلاس col-6. استفاده کنید:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container-fluid">
  <h1>Extra Small Grid</h1>
  <p>The following example will result in a 33.3%/66.6% split on all devices.</p>
  <p>Resize the browser window to see the effect.</p>
  <div class="container-fluid">
    <div class="row">
      <div class="col-4 bg-success">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<br>
        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
      </div>
      <div class="col-8 bg-warning">
        Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
      </div>
    </div>
  </div>
  <br>
  
  <p>This example will result in a 50%/50% split on all devices.</p>
  <div class="container-fluid">
    <div class="row">
      <div class="col-6 bg-success">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<br>
        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
      </div>
      <div class="col-6 bg-warning">
        Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
      </div>
    </div>
  </div>
</div>

</body>
</html>

مشاهده ی خروجی در JSBin

در این حالت هم می توانید تنها با استفاده از col. (بدون ذکر عدد) به ستون ها عرض یکسان دهید:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container-fluid">
  <h1>Auto Layout Columns</h1>
  <p>In Bootstrap 4, there is an easy way to create equal width columns for all devices: just use the <code>.col</code> class on a specified number of col elements. Bootstrap will recognize how many columns there are, and each column will get the same width.</p>
  <div class="container-fluid">
    <div class="row">
      <div class="col bg-success">1 of 2</div>
      <div class="col bg-warning">2 of 2</div>
    </div>  
  </div>
  <br>
  
  <div class="container-fluid">
    <div class="row">
      <div class="col bg-success">1 of 4</div>
      <div class="col bg-warning">2 of 4</div>
      <div class="col bg-success">3 of 4</div>
      <div class="col bg-warning">4 of 4</div>
    </div>  
  </div>
</div>

</body>
</html>

مشاهده ی خروجی در JSBin

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری آموزش Bootstrap توصیه می‌کند:
نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.