Preskoči na glavno vsebino Preskoči na navigacijo po dokumentih
in English

Komponente

Naučite se, kako in zakaj gradimo skoraj vse naše komponente odzivno ter z osnovnimi in modifikatorskimi razredi.

Osnovni razredi

Komponente Bootstrapa so večinoma zgrajene z nomenklaturo osnovnih modifikatorjev. Čim več lastnosti v skupni rabi združimo v osnovni razred, na primer .btn, nato pa posamezne sloge za vsako različico združimo v razrede modifikatorjev, na primer .btn-primaryali .btn-success.

Za izdelavo naših modifikatorskih razredov uporabljamo Sassove @eachzanke za ponavljanje po Sassovem zemljevidu. To je še posebej koristno za generiranje različic komponente z našimi $theme-colorsin ustvarjanje odzivnih različic za vsako prelomno točko. Ko prilagodite te zemljevide Sass in jih znova prevedete, boste samodejno videli, da se vaše spremembe odražajo v teh zankah.

Oglejte si naše zemljevide Sass in dokumente o zankah, da ugotovite, kako prilagoditi te zanke in razširiti Bootstrapov pristop osnovnega modifikatorja na vašo kodo.

Modifikatorji

Številne komponente Bootstrapa so zgrajene s pristopom razreda osnovnega modifikatorja. To pomeni, da je večina sloga vsebovana v osnovnem razredu (npr. .btn), medtem ko so različice sloga omejene na razrede modifikatorjev (npr. .btn-danger). Ti razredi modifikatorjev so zgrajeni iz $theme-colorszemljevida za prilagoditev števila in imena naših razredov modifikatorjev.

Tu sta dva primera, kako preletimo $theme-colorszemljevid, da ustvarimo modifikatorje za komponente .alertin ..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);
}

Odzivna

Tudi te Sassove zanke niso omejene na barvne zemljevide. Ustvarite lahko tudi odzivne različice svojih komponent. Vzemimo za primer našo odzivno poravnavo spustnih menijev, kjer mešamo @eachzanko za $grid-breakpointszemljevid Sass z medijskimi poizvedbami.

// 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;
      }
    }
  }
}

Če spremenite svoj $grid-breakpoints, bodo vaše spremembe veljale za vse zanke, ki ponavljajo ta zemljevid.

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

Za več informacij in primere o tem, kako spremeniti naše zemljevide in spremenljivke Sass, si oglejte razdelek Sass v dokumentaciji Grid .

Ustvarjanje lastnega

Priporočamo vam, da te smernice sprejmete pri gradnji z Bootstrapom, da ustvarite svoje komponente. Ta pristop smo sami razširili na komponente po meri v naši dokumentaciji in primerih. Komponente, kot so naši oblački, so zgrajene tako kot naše komponente z osnovnimi in modifikatorskimi razredi.

To je oblaček. Izdelali smo ga po meri za naše dokumente, tako da naša sporočila vam izstopajo. Ima tri različice prek modifikatorskih razredov.
<div class="callout">...</div>

V svojem CSS-ju bi imeli nekaj podobnega naslednjemu, kjer se večina slogov izvede prek .callout. Nato se edinstveni slogi med vsako različico nadzirajo prek razreda modifikatorja.

// Base class
.callout {}

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

Za oblačke je ta edinstven stil samo border-left-color. Ko združite ta osnovni razred z enim od teh modifikatorskih razredov, dobite celotno družino komponent:

To je informacijski oblaček. Primer besedila za prikaz v akciji.
To je opozorilni oblaček. Primer besedila za prikaz v akciji.
To je znak nevarnosti. Primer besedila za prikaz v akciji.