Прескокнете до главната содржина Прескокнете до навигацијата со документи
in English

Utility API

Услужниот API е алатка заснована на Sass за генерирање на класи на алатки.

Услужните програми за Bootstrap се генерираат со нашето API за услужни програми и може да се користат за менување или проширување на нашиот стандарден сет на класи на алатки преку Sass. Нашето корисно API се заснова на серија Sass мапи и функции за генерирање семејства на класи со различни опции. Ако не сте запознаени со мапите на Sass, прочитајте ги официјалните документи на Sass за да започнете.

Картата $utilitiesги содржи сите наши алатки и подоцна се спојува со вашата приспособена $utilitiesкарта, доколку е присутна. Мапата на комуналните услуги содржи клучена листа на групи на алатки кои ги прифаќаат следните опции:

Опција Тип Опис
property Задолжително Име на имотот, ова може да биде низа или низа жици (на пр. хоризонтални облоги или маргини).
values Задолжително Список на вредности или мапа ако не сакате името на класата да биде исто со вредноста. Ако nullсе користи како клуч за мапа, тој не е компајлиран.
class Изборен Променлива за името на класата ако не сакате да биде исто како својството. Во случај да не го дадете classклучот, а propertyклучот е низа низи, името на класата ќе биде првиот елемент на propertyнизата.
state Изборен Список на варијанти на псевдо-класа како :hoverили :focusза генерирање за алатката. Нема стандардна вредност.
responsive Изборен Булова покажува дали треба да се генерираат одговорни класи. falseстандардно.
rfs Изборен Булова за да се овозможи рескалирање на течноста. Погледнете ја страницата RFS за да дознаете како функционира ова. falseстандардно.
print Изборен Булова покажува дали треба да се генерираат класи за печатење. falseстандардно.
rtl Изборен Булова покажува дали алатката треба да се чува во RTL. trueстандардно.

Објаснето API

Сите корисни променливи се додаваат на $utilitiesпроменливата во нашиот лист со _utilities.scssстилови. Секоја група на комунални услуги изгледа вака:

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

Која го дава следново:

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

Прилагоден префикс за класа

Користете ја classопцијата за промена на префиксот на класата што се користи во компајлираниот CSS:

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

Излез:

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

држави

Користете ја stateопцијата за генерирање варијации на псевдо-класа. Пример псевдо-класи се :hoverи :focus. Кога се обезбедува список на состојби, се креираат имиња на класи за таа псевдо-класа. На пример, за да ја промените непроѕирноста при лебдењето, додајте state: hoverи ќе влезете .opacity-hover:hoverво вашата компајлирана CSS.

Ви требаат повеќе псевдо-класи? Користете листа на состојби одвоена со простор: state: hover focus.

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

Излез:

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

Одговорни комунални услуги

Додајте го responsiveбулот за да генерирате одговорни алатки (на пример, .opacity-md-25) низ сите точки на прекин .

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

Излез:

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

Менување на комуналните услуги

Отфрлете ги постоечките комунални услуги со користење на истиот клуч. На пример, ако сакате дополнителни респонзивни услужни класи за прелевање, можете да го направите ова:

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

Овозможувањето на printопцијата ќе генерира и корисни класи за печатење, кои се применуваат само во рамките на @media print { ... }барањето за медиуми.

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

Излез:

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

Важност

Сите алатки генерирани од API вклучуваат !importantза да се осигури дека ги надминуваат компонентите и класите на модификатори како што е наменето. Можете да ја префрлите оваа поставка глобално со $enable-important-utilitiesпроменливата (стандардно на true).

Користење на API

Сега кога сте запознаени со тоа како функционира API-то на услужните програми, научете како да додавате свои сопствени класи и да ги менувате нашите стандардни алатки.

Додадете комунални услуги

Новите алатки може да се додадат на стандардната $utilitiesмапа со map-merge. Проверете дали нашите потребни датотеки Sass _utilities.scssсе прво увезени, а потоа користете го за map-mergeда ги додадете вашите дополнителни алатки. На пример, еве како да додадете одговорна cursorалатка со три вредности.

@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,
    )
  )
);

Изменете ги комуналните услуги

Изменете ги постоечките алатки во стандардната $utilitiesмапа со map-getи map-mergeфункции. Во примерот подолу, додаваме дополнителна вредност на widthкомуналните услуги. Започнете со почетна map-mergeи потоа наведете која алатка сакате да ја измените. Оттаму, преземете ја вгнездената "width"карта со map-getза да пристапите и да ги измените опциите и вредностите на алатката.

@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%),
        ),
      ),
    ),
  )
);

Овозможи одговор

Можете да овозможите одговорни класи за постоечки сет на услужни програми кои во моментов не одговараат стандардно. На пример, за да ги направите borderкласите одговорни:

@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 ),
    ),
  )
);

Ова сега ќе генерира одговорни варијации на .borderи .border-0за секоја точка на прекин. Вашиот генериран CSS ќе изгледа вака:

.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 { ... }
}

Преименувајте ги комуналните услуги

Недостасува v4 комунални услуги или се користи за друга конвенција за именување? Utilities API може да се користи за да се отфрли резултатот classод дадена алатка - на пример, да се преименуваат .ms-*услужните програми во стари .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 ),
    ),
  )
);

Отстранете ги комуналните услуги

Отстранете која било од стандардните алатки со поставување на клучот за групата на null. На пример, за да ги отстраните сите наши widthкомунални услуги, креирајте $utilities map-mergeи додадете "width": nullвнатре.

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

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

Отстранете ја алатката во RTL

Некои рабови го отежнуваат стилот на RTL , како што се прекините на линиите на арапски. Така, комуналните услуги може да се исфрлат од излезот RTL со поставување на rtlопцијата на false:

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

Излез:

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

Ова не емитува ништо во RTL, благодарение на контролната директива RTLCSSremove .