Utility API
The utility API er Sass byggt tól til að búa til gagnsemi flokka.
Bootstrap tól eru búin til með tólum API okkar og hægt er að nota til að breyta eða stækka sjálfgefið sett af tólaflokkum í gegnum Sass. Forritaskil gagnsemi okkar eru byggð á röð Sass korta og aðgerða til að búa til flokkafjölskyldur með ýmsum valkostum. Ef þú þekkir ekki Sass kort skaltu lesa upp opinberu Sass skjölin til að byrja.
Kortið $utilities
inniheldur öll tólin okkar og er síðar sameinuð sérsniðnu $utilities
kortinu þínu, ef það er til staðar. Veitukortið inniheldur lykillista yfir veituhópa sem samþykkja eftirfarandi valkosti:
Valkostur | Tegund | Lýsing |
---|---|---|
property |
Áskilið | Heiti eignarinnar, þetta getur verið strengur eða fylki strengja (td lárétt bólstrun eða spássíur). |
values |
Áskilið | Listi yfir gildi, eða kort ef þú vilt ekki að flokksnafnið sé það sama og gildið. Ef null hann er notaður sem kortalykill er hann ekki settur saman. |
class |
Valfrjálst | Breyta fyrir flokksheitið ef þú vilt ekki að það sé það sama og eignin. Ef þú gefur ekki upp class lykilinn og property lykillinn er fylki af strengjum, verður flokksheitið fyrsti þátturinn í property fylkinu. |
state |
Valfrjálst | Listi yfir gerviflokkafbrigði eins og :hover eða :focus til að búa til fyrir tólið. Ekkert sjálfgefið gildi. |
responsive |
Valfrjálst | Boolean gefur til kynna hvort búa þurfi til móttækilega flokka. false sjálfgefið. |
rfs |
Valfrjálst | Boolean til að gera kleift að endurskala vökva. Skoðaðu RFS síðuna til að komast að því hvernig þetta virkar. false sjálfgefið. |
print |
Valfrjálst | Boolean gefur til kynna hvort búa þurfi til prentflokka. false sjálfgefið. |
rtl |
Valfrjálst | Boolean sem gefur til kynna hvort nota ætti að vera í RTL. true sjálfgefið. |
API útskýrt
Öllum nytjabreytum er bætt við $utilities
breytuna í _utilities.scss
stílblaðinu okkar. Hver hópur veitu lítur einhvern veginn svona út:
$utilities: (
"opacity": (
property: opacity,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
Sem gefur út eftirfarandi:
.opacity-0 { opacity: 0; }
.opacity-25 { opacity: .25; }
.opacity-50 { opacity: .5; }
.opacity-75 { opacity: .75; }
.opacity-100 { opacity: 1; }
Sérsniðið flokksforskeyti
Notaðu class
valkostinn til að breyta flokksforskeyti sem notað er í samsettu CSS:
$utilities: (
"opacity": (
property: opacity,
class: o,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
Framleiðsla:
.o-0 { opacity: 0; }
.o-25 { opacity: .25; }
.o-50 { opacity: .5; }
.o-75 { opacity: .75; }
.o-100 { opacity: 1; }
Ríki
Notaðu state
möguleikann til að búa til gerviflokkaafbrigði. Dæmi um gerviflokkar eru :hover
og :focus
. Þegar listi yfir ríki er veittur eru flokksnöfn búin til fyrir þann gerviflokk. Til dæmis, til að breyta ógagnsæi á sveimi skaltu bæta við state: hover
og þú munt komast .opacity-hover:hover
inn í samansetta CSS.
Þarftu marga gerviflokka? Notaðu bilaðskilinn lista yfir ríki: state: hover focus
.
$utilities: (
"opacity": (
property: opacity,
class: opacity,
state: hover,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
Framleiðsla:
.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; }
Móttækileg tól
Bættu við responsive
boolean til að búa til móttækileg tól (td .opacity-md-25
) yfir alla brotpunkta .
$utilities: (
"opacity": (
property: opacity,
responsive: true,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
Framleiðsla:
.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; }
}
Breyting á veitum
Hneka núverandi tólum með því að nota sama lykil. Til dæmis, ef þú vilt fá fleiri móttækilega yfirflæðisveituflokka, geturðu gert þetta:
$utilities: (
"overflow": (
responsive: true,
property: overflow,
values: visible hidden scroll auto,
),
);
Prentaforrit
Ef print
valkosturinn er virkur mun einnig myndast gagnsemisflokkar fyrir prentun, sem eru aðeins notaðir innan @media print { ... }
fjölmiðlafyrirspurnarinnar.
$utilities: (
"opacity": (
property: opacity,
print: true,
values: (
0: 0,
25: .25,
50: .5,
75: .75,
100: 1,
)
)
);
Framleiðsla:
.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; }
}
Mikilvægi
Öll tól sem myndast af API innihalda !important
til að tryggja að þau hnekkja íhlutum og breytingaflokkum eins og ætlað er. Þú getur skipt um þessa stillingu á heimsvísu með $enable-important-utilities
breytunni (sjálfgefið er true
).
Með því að nota API
Nú þegar þú ert kunnugur hvernig forritaskil tóla virka skaltu læra hvernig á að bæta við eigin sérsniðnum flokkum og breyta sjálfgefnum tólum okkar.
Bæta við tólum
Hægt er að bæta nýjum tólum við sjálfgefið $utilities
kort með map-merge
. Gakktu úr skugga um að nauðsynlegar Sass skrár okkar og _utilities.scss
séu fluttar inn fyrst, notaðu síðan map-merge
til að bæta við viðbótartólum þínum. Til dæmis, hér er hvernig á að bæta við móttækilegu cursor
tóli með þremur gildum.
@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,
)
)
);
Breyta tólum
Breyttu núverandi tólum á sjálfgefna $utilities
kortinu með map-get
og map-merge
aðgerðum. Í dæminu hér að neðan erum við að bæta við viðbótarvirði við width
veiturnar. Byrjaðu á upphafsstaf map-merge
og tilgreindu síðan hvaða tól þú vilt breyta. Þaðan skaltu sækja hreiður "width"
kortið með map-get
til að fá aðgang að og breyta valkostum og gildum tólsins.
@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%),
),
),
),
)
);
Virkja móttækilegur
Þú getur virkjað móttækilega flokka fyrir núverandi sett af tólum sem eru ekki móttækileg sjálfgefið. Til dæmis, til að gera border
bekkina móttækilega:
@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 ),
),
)
);
Þetta mun nú búa til móttækileg afbrigði af .border
og .border-0
fyrir hvern brotpunkt. Mynduð CSS mun líta svona út:
.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 { ... }
}
Endurnefna tól
Vantar v4 tól, eða vanur annarri nafnavenju? Hægt er að nota forritaskil tóla til að hnekkja niðurstöðu class
tiltekins tóls - til dæmis til að endurnefna .ms-*
tól í oldish .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 ),
),
)
);
Fjarlægðu tól
Fjarlægðu eitthvað af sjálfgefnum tólum með því að stilla hóplykilinn á null
. Til dæmis, til að fjarlægja öll width
tólin okkar, búðu til $utilities
map-merge
og bættu við "width": null
innan.
@import "bootstrap/scss/functions";
@import "bootstrap/scss/variables";
@import "bootstrap/scss/utilities";
$utilities: map-merge(
$utilities,
(
"width": null
)
);
Fjarlægðu tól í RTL
Sum jaðarhylki gera RTL stíl erfitt , svo sem línuskil á arabísku. Þannig er hægt að sleppa tólum úr RTL framleiðslu með því að stilla rtl
valkostinn á false
:
$utilities: (
"word-wrap": (
property: word-wrap word-break,
class: text,
values: (break: break-word),
rtl: false
),
);
Framleiðsla:
/* rtl:begin:remove */
.text-break {
word-wrap: break-word !important;
word-break: break-word !important;
}
/* rtl:end:remove */
Þetta gefur ekki út neitt í RTL, þökk sé RTLCSS remove
stjórnskipuninni .