سلام با آموزش Bootstrap 4 در خدمت شما هستیم در قسمت قبل با مفاهیم زیر آشنا شدیم
ساده ترین نوع لیست گروهی یک لیست بدون نشانه و ترتیب (Unordered list) با یک یا چندین آیتم درون آن است، همانند عکس زیر:
برای ایجاد یک لیست گروهی ساده در بوت استرپ 4، از یک تگ <ul> با کلاس list-group، استفاده می شود که هر آیتم درون آن با یک تگ <li> با کلاس list-group-item، تعیین خواهد شد، همانند کد مثال عملی زیر:
<ul class="list-group">
<li class="list-group-item">First item</li>
<li class="list-group-item">Second item</li>
<li class="list-group-item">Third item</li>
</ul>
اگر به یکی از آیتم های <li> درون یک لیست بوت استرپ 4، کلاس .active بدهید، آن آیتم به صورت فعال با پس زمینه رنگی (به صورت پیش فرض) و متمایز از بقیه نشان داده خواهد شد.
مثال: در کد مثال زیر، یک لیست گروهی در Bootstrap 4 ایجاد کرده ایم که آیتم اول آن به صورت فعال درآمده است :
<ul class="list-group">
<li class="list-group-item active">Active item</li>
<li class="list-group-item">Second item</li>
<li class="list-group-item">Third item</li>
</ul>
برای ایجاد یک لیست گروهی با آیتم های لینک، از یک تگ <div> به جای تگ <ul> استفاده کرده و به جای آیتم های <li>، درون آن آیتم های <a> تعریف کنیم. همچنین در صورت تمایل می توانید برای اینکه در هنگام عبور موس کاربر از روی لینک ها، پس زمینه آن ها به صورت خاکستری داشته و حالت hover پیدا کنند، از کلاس .list-group-item-action در تگ های <a> استفاده نمایید، همانند کد مثال عملی زیر:
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action">First item</a>
<a href="#" class="list-group-item list-group-item-action">Second item</a>
<a href="#" class="list-group-item list-group-item-action">Third item</a>
</div>
برای تعیین یک آیتم در لیست به صورت غیر فعال (Disabled) بایستی کلاس .disabled را به عنصر اضافه کنید. در این حالت، رنگ نوشته آیتم به صورت خاکستری و کم رنگ در می آید و غیر فعال خواهد بود. همچنین در لیست های لینکی، قابلیت hover آن ها نیز از بین می رود.
مثال: در مثال زیر، یک لیست در بوت استرپ 4، ایجاد کرده ایم که آیتم اول و دوم آن، غیر فعال است.
<div class="list-group">
<a href="#" class="list-group-item disabled">Disabled item</a>
<a href="#" class="list-group-item disabled">Disabled item</a>
<a href="#" class="list-group-item">Third item</a>
</div>
در صورت استفاده از کلاس .list-group-flush در عنصر مادر لیست تگ <ul>، خطوط حاشیه یا Border دور لیست حذف شده و دیگر نوشته های آن گرد نیز نخواهد بود، همانند کد عملی مثال زیر :
مثال 5
<ul class="list-group list-group-flush">
<li class="list-group-item">First item</li>
<li class="list-group-item">Second item</li>
<li class="list-group-item">Third item</li>
<li class="list-group-item">Fourth item</li>
</ul>
اگر می خواهید آیتم های لیست در بوت استرپ 4، به صورت افقی یا Horizontal به جای عمودی Vertical (در کنار هم به جای قرار گرفتن بر روی هم) نمایش داده شوند، کلاس .list-group-horizontal را به عنصر مادر لیست (تگ <ul> یا <div> با کلاس list-group)، اضافه نمایید، همانند کد مثال عملی زیر:
مثال 6
<ul class="list-group list-group-horizontal">
<li class="list-group-item">First item</li>
<li class="list-group-item">Second item</li>
<li class="list-group-item">Third item</li>
<li class="list-group-item">Fourth item</li>
</ul>
از کلاس های متنی رنگی ویژه بوت استرپ 4، یا کلاس های Contextual Classes که در بخش های قبل معرفی کردیم، برای تعیین رنگ پس زمینه آیتم های لیست استفاده نمایید. این رنگ ها مفهومی هستند و هریک پیام خاصی مثل موفقیت یا خطر را به کاربر نشان می دهد:
مثال: کلاس های رنگی متنی ویژه بوت استرپ 4، عبارتند از .list-group-item-success, list-group-item-secondary, list-group-item-info, list-group-item-warning, .list-group-item-danger, .list-group-item-primary, list-group-item-dark و list-group-item-light، که از هریک از آن ها در لیست زیر برای تعیین رنگ یک آیتم لیست، استفاده کرده ایم :
<ul class="list-group">
<li class="list-group-item list-group-item-success">Success item</li>
<li class="list-group-item list-group-item-secondary">Secondary item</li>
<li class="list-group-item list-group-item-info">Info item</li>
<li class="list-group-item list-group-item-warning">Warning item</li>
<li class="list-group-item list-group-item-danger">Danger item</li>
<li class="list-group-item list-group-item-primary">Primary item</li>
<li class="list-group-item list-group-item-dark">Dark item</li>
<li class="list-group-item list-group-item-light">Light item</li>
</ul>
همانند مثال بخش های قبلی، می توانید از کلاس های رنگی ویژه بوت استرپ 4 در لیست های لینک دار هم استفاده کنید، با این تفاوت که در لیست های لینک دار از تگ های <div> به جای <ul> در عنصر مادر لیست و تگ <a> به جای تگ <li> برای تعریف هر آیتم استفاده می کنیم. کلاس رنگی را نیز بایستی به تگ <a> اعمال کنید و با به کار بردن کلاس .list-group-item-action در لینک ها، خاصیت hover یا تیره شدن رنگ در هنگام عبور موس بر روی آیتم، بدان اضافه خواهد شد.
مثال: به کد مثال عملی زیر دقت کنید و خروجی را مشاهده نمایید :
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action">Action item</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-success">Success item</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-secondary">Secondary item</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-info">Info item</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-warning">Warning item</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-danger">Danger item</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-primary">Primary item</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-dark">Dark item</a>
<a href="#" class="list-group-item list-group-item-action list-group-item-light">Light item</a>
</div>
می توانید با ترکیب کلاس badge و چند کلاس کمکی دیگر در بوت استرپ 4، لیست هایی دارای نشانه های عمودی یا متنی (Badge List) ایجاد نمایید، همانند عکس زیر:
مثال: در کد مثال عملی زیر یک لیست نشان دار یا Badge List ایجاد کرده ایم. روال کار همانند یک لیست ساده بوت استرپ 4 است. با این تفاوت که برای اضافه کردن Badge یک تگ مثل <span> با کلاس .badge و یکسری کلاس کمکی دیگر، درون هر آیتم لیست قرار داده ایم:
<ul class="list-group">
<li class="list-group-item d-flex justify-content-between align-items-center">
Inbox
<span class="badge badge-primary badge-pill">12</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
Ads
<span class="badge badge-primary badge-pill">50</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
Junk
<span class="badge badge-primary badge-pill">99</span>
</li>
</ul>
نکته :
می توانید اعداد درون Badge را به صورت ایستاتیک تعریف کرده یا با استفاده از jQuery و Ajax آن را به صورت دینامیک نیز تغییر دهید.
یک کارت (Card) در بوت استرپ 4، یک جعبه یا Box با خطوط حاشیه به دور آن و مقداری حاشیه درونی یا Padding به دور محتویاتش است.
کارت یا Card در بوت استرپ 4، دارای قابلیت های مختلفی جهت اضافه کردن سر عنوان (Header)، پاورقی (Footer)، محتویات (Context)، رنگ بندی و Card... می باشد.
عکس زیر، یک کادر (Card) کامل در Bootstrap 4 را نشان می دهد :
یک کارت ساده (Basic Card) توسط یک المنت با کلاس Card ایجاد شده و محتویات آن درون یک المنت با کلاس .card-body قرار می گیرند :
<div class="card">
<div class="card-body">Basic card</div>
</div>
اگر با چهارچوب کاری Bootstrap 3 آشنا هستید، کارت در Bootstrap 4 جایگزین پنل (Panel)، well و عکس های بند انگشتی (thumbnails) گردیده است.
کلاس card-header. یک بخش سر عنوان (Header) و کلاس card-footer یه بخش پایین صفحه (Footer) به کارت اضافه می کند. در کد مثال عملی زیر، یک کارت را درون تگ <div> مادر ایجاد کرده و 3 بخش اصلی را برای آن تعیین کرده ایم :
<div class="card">
<div class="card-header">Header</div>
<div class="card-body">Content</div>
<div class="card-footer">Footer</div>
</div>
جهت تعیین رنگ پس زمینه کارت (Card) در Bootstrap 4 می توانید از کلاس های رنگی متنی ویژه بوت استرپ 4 که در مباحث قبلی هم به آن ها استناد کرده ایم، استفاده کنید. این کلاس ها عبارتند از .bg-primary, .bg-success, .bg-info, .bg-warning, .bg-danger, .bg-secondary, .bg-dark و .bg-light.
مثال: در کد مثال عملی زیر، انواع Card با رنگ های مختلف را ایجاد کرده ایم :
<div class="container">
<h2>Cards with Contextual Classes</h2>
<div class="card">
<div class="card-body">Basic card</div>
</div>
<div class="card bg-primary text-white">
<div class="card-body">Primary card</div>
</div>
<div class="card bg-success text-white">
<div class="card-body">Success card</div>
</div>
<div class="card bg-info text-white">
<div class="card-body">Info card</div>
</div>
<div class="card bg-warning text-white">
<div class="card-body">Warning card</div>
</div>
<div class="card bg-danger text-white">
<div class="card-body">Danger card</div>
</div>
<div class="card bg-secondary text-white">
<div class="card-body">Secondary card</div>
</div>
<div class="card bg-dark text-white">
<div class="card-body">Dark card</div>
</div>
<div class="card bg-light text-dark">
<div class="card-body">Light card</div>
</div>
</div>
از کلاس card-title. برای اضافه کردن عنوان به بخش هدر المنت استفاده می شود. از کلاس card-text. برای حذف مارجین پایینی یک المنت <p> (اگر آخرین یا تنها فرزند موجود در بخش card-body باشد)، استفاده می شود. همچنین کلاس card-link.، به لینک درون آن رنگ آبی داده و خاصیت عبور موس یا hover را به آن می دهد.
مثال: در کد مثال عملی زیر، یک کارت (Card) در Bootstrap 4 با عنوان، متن و دو لینک را ایجاد کرده ایم :
<div class="card">
<div class="card-body">
<h4 class="card-title">Card title</h4>
<p class="card-text">Some example text. Some example text.</p>
<a href="#" class="card-link">Card link</a>
<a href="#" class="card-link">Another link</a>
</div>
</div>
به ترتیب کلاس های card-img-top. یا card-img-bottom. را به تگ اضافه کنید تا عکس مورد نظرتان در قسمت بالایی یا پایینی کارت (Card) قرار بگیرد.
توجه داشته باشید که در کد مثال عملی زیر، تگ image را خارج از المنت card-body قرار داده ایم تا کل عرض کارت را اشغال کند :
<div class="card" style="width:400px"><img alt="Card image" class="card-img-top" src="img_avatar1.png">
<div class="card-body">
<h4>John Doe</h4>
<p>Some example text.</p>
<a class="btn btn-primary" href="#">See Profile</a></div>
</div>
چنانچه کلاس Stretched-link. را به یک لینک درون Card اضافه کنید، کل کارت قابل کلیک شدن شده و خاصیت عبور موس یا افکت hover به آن اضافه می شود (کل کارت به صورت یک لینک عمل می کند).
مثال: در کد مثال عملی زیر، کلاس stretched-link. را به لینک با متن See Profile اضافه کرده ایم و کل کارت قابل کلیک شده است :
<a href="#" class="btn btn-primary stretched-link">See Profile</a>
چنانچه به عنصر دربرگیرنده بدنه Card (مثلا تگ div)، کلاس card-img-overlay را اضافه کنید، عکس موجود در کارت به صورت تمام صفحه نشان داده شده و سایر محتویات بر روی عکس قرار می گیرند. به مثال زیر دقت نمایید :
مثال 7
<div class="card" style="width:500px">
<img class="card-img-top" src="img_avatar1.png" alt="Card image">
<div class="card-img-overlay">
<h4 class="card-title">John Doe</h4>
<p class="card-text">Some example text.</p>
<a href="#" class="btn btn-primary">See Profile</a>
</div>
</div>
به کار بردن کلاس card-columns. در تگ اصلی کارت، یک جدول یا گرید کاشی مانند از چندین کارت در سطر و ستون های مختلف را ایجاد می کند.
به عبارت دیگر می توانید 2 یا چندین کارت را در یک کارت مادر در کنار هم چیده و نمایش دهید. قالب یا layout و نحوه قرارگیری کارت ها در این حالت، به صورت خودکار و بر حسب تعداد کارت های وارد شده، تغییر می کند.
نکته :
در صفحه نمایش های کوچکتر از عرض 576 پیکسل، کارت ها به صورت عمودی بر روی هم قرار می گیرند.
مثال: در کد مثال عملی زیر، 6 کارت را با رنگ های مختلف (که از کلاس های رنگی متنی ویژه بوت استرپ استفاده شده) را درون یک کارت مادر قرار داده ایم :
<div class="card-columns">
<div class="card bg-primary">
<div class="card-body text-center">
<p class="card-text">Some text inside the first card</p>
</div>
</div>
<div class="card bg-warning">
<div class="card-body text-center">
<p class="card-text">Some text inside the second card</p>
</div>
</div>
<div class="card bg-success">
<div class="card-body text-center">
<p class="card-text">Some text inside the third card</p>
</div>
</div>
<div class="card bg-danger">
<div class="card-body text-center">
<p class="card-text">Some text inside the fourth card</p>
</div>
</div>
<div class="card bg-light">
<div class="card-body text-center">
<p class="card-text">Some text inside the fifth card</p>
</div>
</div>
<div class="card bg-info">
<div class="card-body text-center">
<p class="card-text">Some text inside the sixth card</p>
</div>
</div>
</div>