ข้ามไปที่เนื้อหาหลัก ข้ามไปที่การนำทางเอกสาร
Check
in English

ส่วนประกอบ

เรียนรู้วิธีการและเหตุผลที่เราสร้างส่วนประกอบเกือบทั้งหมดของเราอย่างตอบสนอง และด้วยคลาสฐานและตัวดัดแปลง

คลาสพื้นฐาน

ส่วนประกอบของ Bootstrap ส่วนใหญ่สร้างขึ้นด้วยศัพท์เฉพาะตัวดัดแปลงฐาน เราจัดกลุ่มคุณสมบัติที่ใช้ร่วมกันได้มากเท่าที่เป็นไปได้ในคลาสพื้นฐาน เช่น.btnจากนั้นจัดกลุ่มลักษณะเฉพาะสำหรับแต่ละตัวแปรเป็นคลาสตัวแก้ไขเช่น.btn-primaryหรือ.btn-success

ในการสร้างคลาส modifier เราใช้@eachลูปของ Sass เพื่อวนซ้ำบนแผนที่ Sass สิ่งนี้มีประโยชน์อย่างยิ่งในการสร้างตัวแปรของส่วนประกอบโดยเรา$theme-colorsและสร้างตัวแปรที่ตอบสนองได้สำหรับแต่ละเบรกพอยต์ เมื่อคุณปรับแต่งแผนที่ Sass เหล่านี้และคอมไพล์ใหม่ คุณจะเห็นการเปลี่ยนแปลงของคุณสะท้อนให้เห็นในลูปเหล่านี้โดยอัตโนมัติ

ดูเอกสารแผนที่และลูป Sass ของเราเพื่อดูวิธีปรับแต่งลูปเหล่านี้และขยายวิธีการแก้ไขฐานของ Bootstrap ไปยังโค้ดของคุณเอง

ตัวดัดแปลง

คอมโพเนนต์ของ Bootstrap จำนวนมากสร้างขึ้นด้วยวิธีคลาสตัวดัดแปลงฐาน ซึ่งหมายความว่าการจัดสไตล์ส่วนใหญ่จะรวมอยู่ในคลาสพื้นฐาน (เช่น.btn) ในขณะที่รูปแบบต่างๆ นั้นจำกัดอยู่ที่คลาสตัวปรับแต่ง (เช่น.btn-danger) คลาสตัวปรับแต่งเหล่านี้สร้างขึ้นจาก$theme-colorsแผนที่เพื่อปรับแต่งหมายเลขและชื่อของคลาสตัวปรับแต่งของเรา

ต่อไปนี้คือตัวอย่างสองตัวอย่างเกี่ยวกับวิธีที่เราวนซ้ำบน$theme-colorsแผนที่เพื่อสร้างตัวแก้ไขให้กับส่วนประกอบ.alertและ.list-group

// Generate contextual modifier classes for colorizing the alert.

@each $state, $value in $theme-colors {
  $alert-background: shift-color($value, $alert-bg-scale);
  $alert-border: shift-color($value, $alert-border-scale);
  $alert-color: shift-color($value, $alert-color-scale);

  @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
    $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
  }
  .alert-#{$state} {
    @include alert-variant($alert-background, $alert-border, $alert-color);
  }
}
// List group contextual variants
//
// Add modifier classes to change text and background color on individual items.
// Organizationally, this must come after the `:hover` states.

@each $state, $value in $theme-colors {
  $list-group-variant-bg: shift-color($value, $list-group-item-bg-scale);
  $list-group-variant-color: shift-color($value, $list-group-item-color-scale);
  @if (contrast-ratio($list-group-variant-bg, $list-group-variant-color) < $min-contrast-ratio) {
    $list-group-variant-color: mix($value, color-contrast($list-group-variant-bg), abs($list-group-item-color-scale));
  }

  @include list-group-item-variant($state, $list-group-variant-bg, $list-group-variant-color);
}

ตอบสนอง

ลูป Sass เหล่านี้ไม่ได้จำกัดเฉพาะแผนที่สีเช่นกัน คุณยังสามารถสร้างรูปแบบที่ตอบสนองของส่วนประกอบของคุณได้ ยกตัวอย่างการจัดวางแบบตอบสนองของดรอปดาวน์ที่เราผสม@eachลูปสำหรับ$grid-breakpointsแผนที่ Sass กับคิวรีสื่อ

// We deliberately hardcode the `bs-` prefix because we check
// this custom property in JS to determine Popper's positioning

@each $breakpoint in map-keys($grid-breakpoints) {
  @include media-breakpoint-up($breakpoint) {
    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);

    .dropdown-menu#{$infix}-start {
      --bs-position: start;

      &[data-bs-popper] {
        right: auto;
        left: 0;
      }
    }

    .dropdown-menu#{$infix}-end {
      --bs-position: end;

      &[data-bs-popper] {
        right: 0;
        left: auto;
      }
    }
  }
}

หากคุณแก้ไข$grid-breakpointsการเปลี่ยนแปลงของคุณจะนำไปใช้กับการวนซ้ำทั้งหมดบนแผนที่นั้น

$grid-breakpoints: (
  xs: 0,
  sm: 576px,
  md: 768px,
  lg: 992px,
  xl: 1200px,
  xxl: 1400px
);

สำหรับข้อมูลเพิ่มเติมและตัวอย่างเกี่ยวกับวิธีการแก้ไขแผนที่และตัวแปร Sass ของเรา โปรดดูที่ส่วน Sass ของเอกสาร Grid

การสร้างของคุณเอง

เราขอแนะนำให้คุณใช้แนวทางเหล่านี้เมื่อสร้างด้วย Bootstrap เพื่อสร้างส่วนประกอบของคุณเอง เราได้ขยายแนวทางนี้ไปยังส่วนประกอบที่กำหนดเองในเอกสารประกอบและตัวอย่างของเรา ส่วนประกอบต่างๆ เช่น คำบรรยายของเราสร้างขึ้นเช่นเดียวกับส่วนประกอบที่เรามีให้พร้อมด้วยคลาสฐานและตัวดัดแปลง

นี่คือข้อความเสริม เราสร้างมันขึ้นมาเองสำหรับเอกสารของเรา เพื่อให้ข้อความที่ส่งถึงคุณโดดเด่น มันมีสามตัวแปรผ่านคลาสตัวดัดแปลง
<div class="callout">...</div>

ใน CSS ของคุณ คุณจะมีสิ่งต่อไปนี้ซึ่งจัดแต่งทรงผมจำนวนมากผ่าน.callout. จากนั้น สไตล์ที่ไม่ซ้ำกันระหว่างตัวแปรแต่ละตัวจะถูกควบคุมผ่านคลาสตัวปรับแต่ง

// Base class
.callout {}

// Modifier classes
.callout-info {}
.callout-warning {}
.callout-danger {}

สำหรับข้อความเสริม สไตล์ที่เป็นเอกลักษณ์นั้นเป็นเพียงรูปแบบborder-left-color. เมื่อคุณรวมคลาสพื้นฐานนั้นเข้ากับคลาสโมดิฟายเออร์ตัวใดตัวหนึ่ง คุณจะได้กลุ่มส่วนประกอบที่สมบูรณ์:

นี่คือข้อความเรียกข้อมูล ข้อความตัวอย่างเพื่อแสดงการทำงาน
นี่คือข้อความเตือน ข้อความตัวอย่างเพื่อแสดงการทำงาน
นี่คือคำเตือนอันตราย ข้อความตัวอย่างเพื่อแสดงการทำงาน