Preskočiť na hlavný obsah Preskočiť na navigáciu v dokumentoch
in English

Utility API

Pomocné API je nástroj založený na Sass na generovanie pomocných tried.

Pomôcky Bootstrap sa generujú pomocou nášho pomocného rozhrania API a možno ich použiť na úpravu alebo rozšírenie našej predvolenej sady pomocných tried cez Sass. Naše pomocné API je založené na sérii máp Sass a funkciách na generovanie rodín tried s rôznymi možnosťami. Ak nie ste oboznámení s mapami Sass, prečítajte si oficiálnu dokumentáciu Sass , aby ste mohli začať.

Mapa $utilitiesobsahuje všetky naše nástroje a neskôr sa zlúči s vašou vlastnou $utilitiesmapou, ak existuje. Mapa nástrojov obsahuje kľúčovaný zoznam skupín nástrojov, ktoré akceptujú nasledujúce možnosti:

Možnosť Typ Popis
property Požadovaný Názov vlastnosti, môže to byť reťazec alebo pole reťazcov (napr. horizontálne vypchávky alebo okraje).
values Požadovaný Zoznam hodnôt alebo mapa, ak nechcete, aby bol názov triedy rovnaký ako hodnota. Ak nullsa používa ako kľúč mapy, nie je kompilovaný.
class Voliteľné Premenná pre názov triedy, ak nechcete, aby bol rovnaký ako vlastnosť. V prípade, že nezadáte classkľúč a propertykľúč je pole reťazcov, názov triedy bude prvým prvkom propertypoľa.
state Voliteľné Zoznam variantov pseudotried, ako je :hoveralebo :focusktoré sa majú vygenerovať pre obslužný program. Žiadna predvolená hodnota.
responsive Voliteľné Boolean označujúci, či je potrebné vygenerovať responzívne triedy. falsepredvolene.
rfs Voliteľné Boolean na umožnenie zmeny mierky tekutiny. Pozrite sa na stránku RFS a zistite, ako to funguje. falsepredvolene.
print Voliteľné Boolean označujúci, či je potrebné vygenerovať triedy tlače. falsepredvolene.
rtl Voliteľné Boolean označujúci, či by mal byť nástroj ponechaný v RTL. truepredvolene.

API vysvetlené

Všetky premenné pomôcky sú pridané do $utilitiespremennej v rámci našej šablóny so _utilities.scssštýlmi. Každá skupina nástrojov vyzerá asi takto:

$utilities: (
  "opacity": (
    property: opacity,
    values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
    )
  )
 );

Z čoho vychádza nasledovné:

.opacity-0 { opacity: 0; }
.opacity-25 { opacity: .25; }
.opacity-50 { opacity: .5; }
.opacity-75 { opacity: .75; }
.opacity-100 { opacity: 1; }

Vlastná predpona triedy

Použite túto classmožnosť na zmenu predpony triedy použitej v kompilovanom CSS:

$utilities: (
  "opacity": (
    property: opacity,
    class: o,
    values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
    )
  )
 );

Výkon:

.o-0 { opacity: 0; }
.o-25 { opacity: .25; }
.o-50 { opacity: .5; }
.o-75 { opacity: .75; }
.o-100 { opacity: 1; }

štátov

Použite statemožnosť na generovanie variácií pseudotried. Príkladmi pseudotried sú :hovera :focus. Keď je poskytnutý zoznam stavov, vytvoria sa názvy tried pre danú pseudotriedu. Ak chcete napríklad zmeniť nepriehľadnosť pri umiestnení kurzora myši, pridajte state: hovera dostanete sa .opacity-hover:hoverdo kompilovaného CSS.

Potrebujete viacero pseudotried? Použite medzerami oddelený zoznam stavov: state: hover focus.

$utilities: (
  "opacity": (
    property: opacity,
    class: opacity,
    state: hover,
    values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
    )
  )
);

Výkon:

.opacity-0-hover:hover { opacity: 0 !important; }
.opacity-25-hover:hover { opacity: .25 !important; }
.opacity-50-hover:hover { opacity: .5 !important; }
.opacity-75-hover:hover { opacity: .75 !important; }
.opacity-100-hover:hover { opacity: 1 !important; }

Responzívne nástroje

Pridajte responsiveboolean na generovanie responzívnych utilít (napr. .opacity-md-25) naprieč všetkými bodmi prerušenia .

$utilities: (
  "opacity": (
    property: opacity,
    responsive: true,
    values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
    )
  )
 );

Výkon:

.opacity-0 { opacity: 0 !important; }
.opacity-25 { opacity: .25 !important; }
.opacity-50 { opacity: .5 !important; }
.opacity-75 { opacity: .75 !important; }
.opacity-100 { opacity: 1 !important; }

@media (min-width: 576px) {
  .opacity-sm-0 { opacity: 0 !important; }
  .opacity-sm-25 { opacity: .25 !important; }
  .opacity-sm-50 { opacity: .5 !important; }
  .opacity-sm-75 { opacity: .75 !important; }
  .opacity-sm-100 { opacity: 1 !important; }
}

@media (min-width: 768px) {
  .opacity-md-0 { opacity: 0 !important; }
  .opacity-md-25 { opacity: .25 !important; }
  .opacity-md-50 { opacity: .5 !important; }
  .opacity-md-75 { opacity: .75 !important; }
  .opacity-md-100 { opacity: 1 !important; }
}

@media (min-width: 992px) {
  .opacity-lg-0 { opacity: 0 !important; }
  .opacity-lg-25 { opacity: .25 !important; }
  .opacity-lg-50 { opacity: .5 !important; }
  .opacity-lg-75 { opacity: .75 !important; }
  .opacity-lg-100 { opacity: 1 !important; }
}

@media (min-width: 1200px) {
  .opacity-xl-0 { opacity: 0 !important; }
  .opacity-xl-25 { opacity: .25 !important; }
  .opacity-xl-50 { opacity: .5 !important; }
  .opacity-xl-75 { opacity: .75 !important; }
  .opacity-xl-100 { opacity: 1 !important; }
}

@media (min-width: 1400px) {
  .opacity-xxl-0 { opacity: 0 !important; }
  .opacity-xxl-25 { opacity: .25 !important; }
  .opacity-xxl-50 { opacity: .5 !important; }
  .opacity-xxl-75 { opacity: .75 !important; }
  .opacity-xxl-100 { opacity: 1 !important; }
}

Zmena inžinierskych sietí

Prepíšte existujúce pomocné programy použitím rovnakého kľúča. Napríklad, ak chcete ďalšie responzívne pomocné triedy pretečenia, môžete to urobiť takto:

$utilities: (
  "overflow": (
    responsive: true,
    property: overflow,
    values: visible hidden scroll auto,
  ),
);

Povolenie tejto printmožnosti tiež vygeneruje pomocné triedy pre tlač, ktoré sa aplikujú iba v rámci @media print { ... }mediálneho dotazu.

$utilities: (
  "opacity": (
    property: opacity,
    print: true,
    values: (
      0: 0,
      25: .25,
      50: .5,
      75: .75,
      100: 1,
    )
  )
 );

Výkon:

.opacity-0 { opacity: 0 !important; }
.opacity-25 { opacity: .25 !important; }
.opacity-50 { opacity: .5 !important; }
.opacity-75 { opacity: .75 !important; }
.opacity-100 { opacity: 1 !important; }

@media print {
  .opacity-print-0 { opacity: 0 !important; }
  .opacity-print-25 { opacity: .25 !important; }
  .opacity-print-50 { opacity: .5 !important; }
  .opacity-print-75 { opacity: .75 !important; }
  .opacity-print-100 { opacity: 1 !important; }
}

Dôležitosť

Všetky pomocné programy generované rozhraním API zahŕňajú !important, aby sa zabezpečilo, že prepíšu komponenty a triedy modifikátorov, ako bolo zamýšľané. Toto nastavenie môžete globálne prepínať pomocou $enable-important-utilitiespremennej (predvolená hodnota je true).

Pomocou API

Teraz, keď ste oboznámení s tým, ako funguje pomocné rozhranie API, zistite, ako pridať svoje vlastné triedy a upraviť naše predvolené pomocné programy.

Pridajte inžinierske siete

Nové nástroje možno pridať do predvolenej $utilitiesmapy pomocou súboru map-merge. Uistite sa, že naše požadované súbory Sass a _utilities.scsssú importované ako prvé, potom použite map-mergena pridanie ďalších nástrojov. Tu je napríklad postup, ako pridať responzívnu cursorpomôcku s tromi hodnotami.

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities,
  (
    "cursor": (
      property: cursor,
      class: cursor,
      responsive: true,
      values: auto pointer grab,
    )
  )
);

Upravte pomôcky

Upravte existujúce nástroje v predvolenej $utilitiesmape pomocou funkcií map-geta map-merge. V nižšie uvedenom príklade pridávame widthpomocným programom ďalšiu hodnotu. Začnite s iniciálou map-mergea potom zadajte, ktorý nástroj chcete upraviť. Odtiaľ načítajte vnorenú "width"mapu pomocou , map-getaby ste získali prístup k možnostiam a hodnotám pomôcky a upravili ich.

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities,
  (
    "width": map-merge(
      map-get($utilities, "width"),
      (
        values: map-merge(
          map-get(map-get($utilities, "width"), "values"),
          (10: 10%),
        ),
      ),
    ),
  )
);

Povoliť responzívne

Môžete povoliť responzívne triedy pre existujúcu množinu pomocných programov, ktoré momentálne predvolene nereagujú. Napríklad, aby boli bordertriedy responzívne:

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities, (
    "border": map-merge(
      map-get($utilities, "border"),
      ( responsive: true ),
    ),
  )
);

Toto teraz vygeneruje responzívne variácie .bordera .border-0pre každý bod prerušenia. Váš vygenerovaný CSS bude vyzerať takto:

.border { ... }
.border-0 { ... }

@media (min-width: 576px) {
  .border-sm { ... }
  .border-sm-0 { ... }
}

@media (min-width: 768px) {
  .border-md { ... }
  .border-md-0 { ... }
}

@media (min-width: 992px) {
  .border-lg { ... }
  .border-lg-0 { ... }
}

@media (min-width: 1200px) {
  .border-xl { ... }
  .border-xl-0 { ... }
}

@media (min-width: 1400px) {
  .border-xxl { ... }
  .border-xxl-0 { ... }
}

Premenujte nástroje

Chýbajú vám pomôcky verzie 4 alebo ste zvyknutí na inú konvenciu pomenovania? Rozhranie API pomocných programov možno použiť na prepísanie výsledku classdaného pomocného programu – napríklad na premenovanie .ms-*pomocných programov na staré .ml-*:

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities, (
    "margin-start": map-merge(
      map-get($utilities, "margin-start"),
      ( class: ml ),
    ),
  )
);

Odstráňte nástroje

Odstráňte všetky predvolené nástroje nastavením skupinového kľúča na null. Ak chcete napríklad odstrániť všetky naše widthnástroje, vytvorte a $utilities map-mergea pridajte "width": nulldo.

@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/utilities";

$utilities: map-merge(
  $utilities,
  (
    "width": null
  )
);

Odstrániť nástroj v RTL

Niektoré prípady okrajov sťažujú štýl RTL , napríklad zalomenie riadkov v arabčine. Pomôcky je teda možné vypustiť z výstupu RTL nastavením rtlmožnosti na false:

$utilities: (
  "word-wrap": (
    property: word-wrap word-break,
    class: text,
    values: (break: break-word),
    rtl: false
  ),
);

Výkon:

/* rtl:begin:remove */
.text-break {
  word-wrap: break-word !important;
  word-break: break-word !important;
}
/* rtl:end:remove */

Toto nevypisuje nič v RTL vďaka riadiacej direktíve RTLCSSremove .