Vifungo
Tumia mitindo maalum ya vitufe vya Bootstrap kwa vitendo katika fomu, mazungumzo, na zaidi kwa usaidizi wa saizi nyingi, majimbo, na zaidi.
Mifano
Bootstrap inajumuisha mitindo kadhaa ya vitufe iliyofafanuliwa awali, kila moja ikitumikia madhumuni yake ya kisemantiki, na nyongeza chache hutupwa kwa udhibiti zaidi.
<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-secondary">Secondary</button>
<button type="button" class="btn btn-success">Success</button>
<button type="button" class="btn btn-danger">Danger</button>
<button type="button" class="btn btn-warning">Warning</button>
<button type="button" class="btn btn-info">Info</button>
<button type="button" class="btn btn-light">Light</button>
<button type="button" class="btn btn-dark">Dark</button>
<button type="button" class="btn btn-link">Link</button>
Kuwasilisha maana kwa teknolojia za usaidizi
Kutumia rangi ili kuongeza maana hutoa tu kielelezo cha kuona, ambacho hakitawasilishwa kwa watumiaji wa teknolojia saidizi - kama vile visoma skrini. Hakikisha kwamba maelezo yanayoashiriwa na rangi ni dhahiri kutoka kwa maudhui yenyewe (km maandishi yanayoonekana), au yanajumuishwa kupitia njia mbadala, kama vile maandishi ya ziada yaliyofichwa na .visually-hidden
darasa.
Zima ufungaji wa maandishi
Ikiwa hutaki maandishi ya kitufe kufungwa, unaweza kuongeza .text-nowrap
darasa kwenye kitufe. Katika Sass, unaweza kuweka $btn-white-space: nowrap
kuzima ufungaji maandishi kwa kila kitufe.
Lebo za kitufe
Madarasa .btn
yameundwa kutumiwa na <button>
kipengee. Hata hivyo, unaweza pia kutumia madarasa haya kwenye <a>
au <input>
vipengele (ingawa baadhi ya vivinjari vinaweza kutumia utoaji tofauti kidogo).
Unapotumia madarasa ya vitufe kwenye <a>
vipengee vinavyotumika kuanzisha utendakazi wa ndani ya ukurasa (kama vile maudhui yanayoporomoka), badala ya kuunganisha kwa kurasa mpya au sehemu ndani ya ukurasa wa sasa, viungo hivi vinapaswa kutolewa role="button"
ili kuwasilisha madhumuni yao ipasavyo kwa teknolojia saidizi kama vile. visoma skrini.
<a class="btn btn-primary" href="#" role="button">Link</a>
<button class="btn btn-primary" type="submit">Button</button>
<input class="btn btn-primary" type="button" value="Input">
<input class="btn btn-primary" type="submit" value="Submit">
<input class="btn btn-primary" type="reset" value="Reset">
Vifungo vya muhtasari
Je, unahitaji kitufe, lakini si rangi nyingi za mandharinyuma wanazoleta? Badilisha darasa za kirekebishaji chaguo-msingi na .btn-outline-*
zile ili kuondoa picha na rangi zote za mandharinyuma kwenye kitufe chochote.
<button type="button" class="btn btn-outline-primary">Primary</button>
<button type="button" class="btn btn-outline-secondary">Secondary</button>
<button type="button" class="btn btn-outline-success">Success</button>
<button type="button" class="btn btn-outline-danger">Danger</button>
<button type="button" class="btn btn-outline-warning">Warning</button>
<button type="button" class="btn btn-outline-info">Info</button>
<button type="button" class="btn btn-outline-light">Light</button>
<button type="button" class="btn btn-outline-dark">Dark</button>
Ukubwa
Ungependa vitufe vikubwa au vidogo? Ongeza .btn-lg
au .btn-sm
kwa saizi za ziada.
<button type="button" class="btn btn-primary btn-lg">Large button</button>
<button type="button" class="btn btn-secondary btn-lg">Large button</button>
<button type="button" class="btn btn-primary btn-sm">Small button</button>
<button type="button" class="btn btn-secondary btn-sm">Small button</button>
Unaweza hata kugeuza saizi yako mwenyewe na anuwai za CSS:
<button type="button" class="btn btn-primary"
style="--bs-btn-padding-y: .25rem; --bs-btn-padding-x: .5rem; --bs-btn-font-size: .75rem;">
Custom button
</button>
Jimbo la walemavu
Fanya vitufe vionekane visivyotumika kwa kuongeza disabled
sifa ya boolean kwa <button>
kipengele chochote. Vifungo vilivyozimwa vimetumika pointer-events: none
kwa, kuzuia hali ya kuelea na amilifu kuwasha.
<button type="button" class="btn btn-primary" disabled>Primary button</button>
<button type="button" class="btn btn-secondary" disabled>Button</button>
<button type="button" class="btn btn-outline-primary" disabled>Primary button</button>
<button type="button" class="btn btn-outline-secondary" disabled>Button</button>
Vifungo vilivyozimwa kwa kutumia <a>
kipengele hufanya tofauti kidogo:
<a>
s haiungi mkonodisabled
sifa, kwa hivyo lazima uongeze.disabled
darasa ili kuifanya ionekane kuwa imelemazwa.- Baadhi ya mitindo ifaayo siku zijazo imejumuishwa ili kuzima zote
pointer-events
kwenye vitufe vya kushikilia. - Vifungo vilivyozimwa vinavyotumiwa
<a>
vinapaswa kujumuishaaria-disabled="true"
sifa ya kuonyesha hali ya kipengele kwa teknolojia za usaidizi. - Vifungo vilivyozimwa kwa kutumia
<a>
haipaswi kujumuishahref
sifa.
<a class="btn btn-primary disabled" role="button" aria-disabled="true">Primary link</a>
<a class="btn btn-secondary disabled" role="button" aria-disabled="true">Link</a>
Tahadhari ya utendaji wa kiungo
Ili kufunika kesi ambapo lazima uweke href
sifa kwenye kiungo kilichozimwa, .disabled
darasa hutumia pointer-events: none
kujaribu kuzima utendakazi wa kiungo cha <a>
s. Kumbuka kuwa kipengele hiki cha CSS bado hakijasanifiwa kwa HTML, lakini vivinjari vyote vya kisasa vinaiunga mkono. Kwa kuongeza, hata katika vivinjari vinavyotumia pointer-events: none
, urambazaji wa kibodi bado haujaathiriwa, kumaanisha kuwa watumiaji wa kibodi wanaoonekana na watumiaji wa teknolojia saidizi bado wataweza kuwezesha viungo hivi. Kwa hivyo kuwa salama, pamoja na aria-disabled="true"
, pia ni pamoja na tabindex="-1"
sifa kwenye viungo hivi ili kuvizuia kupokea umakini wa kibodi, na tumia JavaScript maalum kuzima utendakazi wao kabisa.
<a href="#" class="btn btn-primary disabled" tabindex="-1" role="button" aria-disabled="true">Primary link</a>
<a href="#" class="btn btn-secondary disabled" tabindex="-1" role="button" aria-disabled="true">Link</a>
Vifungo vya kuzuia
Unda rafu zinazojibu za upana kamili, "vitufe vya kuzuia" kama vile vilivyo kwenye Bootstrap 4 na mchanganyiko wa huduma zetu za kuonyesha na pengo. Kwa kutumia huduma badala ya vitufe vya madarasa mahususi, tuna udhibiti mkubwa zaidi wa nafasi, upangaji na tabia za kuitikia.
<div class="d-grid gap-2">
<button class="btn btn-primary" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
Hapa tunaunda tofauti inayoitikia, kuanzia na vitufe vilivyopangwa kiwima hadi sehemu ya md
kukatika, ambapo .d-md-block
inachukua nafasi ya .d-grid
darasa, na hivyo kubatilisha gap-2
matumizi. Badilisha ukubwa wa kivinjari chako ili kuona kikibadilika.
<div class="d-grid gap-2 d-md-block">
<button class="btn btn-primary" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
Unaweza kurekebisha upana wa vitufe vyako vya kuzuia kwa madarasa ya upana wa safu wima ya gridi. Kwa mfano, kwa "kifungo cha kuzuia" cha upana wa nusu, tumia .col-6
. Weka mlalo na .mx-auto
, pia.
<div class="d-grid gap-2 col-6 mx-auto">
<button class="btn btn-primary" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
Huduma za ziada zinaweza kutumika kurekebisha upangaji wa vitufe wakati wa mlalo. Hapa tumechukua mfano wetu wa awali wa mwitikio na kuongeza baadhi ya huduma zinazonyumbulika na matumizi ya ukingo kwenye kitufe ili kupanga vitufe kulia vikiwa havijapangwa tena.
<div class="d-grid gap-2 d-md-flex justify-content-md-end">
<button class="btn btn-primary me-md-2" type="button">Button</button>
<button class="btn btn-primary" type="button">Button</button>
</div>
Kitufe programu-jalizi
Programu-jalizi ya vitufe hukuruhusu kuunda vitufe rahisi vya kuwasha/kuzima.
Geuza majimbo
Ongeza data-bs-toggle="button"
ili kugeuza hali ya kitufe active
. Ikiwa unageuza kitufe mapema, lazima uongeze .active
darasa wewe mwenyewe na aria-pressed="true"
kuhakikisha kuwa linawasilishwa ipasavyo kwa teknolojia saidizi.
<button type="button" class="btn btn-primary" data-bs-toggle="button">Toggle button</button>
<button type="button" class="btn btn-primary active" data-bs-toggle="button" aria-pressed="true">Active toggle button</button>
<button type="button" class="btn btn-primary" disabled data-bs-toggle="button">Disabled toggle button</button>
<a href="#" class="btn btn-primary" role="button" data-bs-toggle="button">Toggle link</a>
<a href="#" class="btn btn-primary active" role="button" data-bs-toggle="button" aria-pressed="true">Active toggle link</a>
<a class="btn btn-primary disabled" aria-disabled="true" role="button" data-bs-toggle="button">Disabled toggle link</a>
Mbinu
Unaweza kuunda mfano wa kifungo na mjenzi wa kifungo, kwa mfano:
const bsButton = new bootstrap.Button('#myButton')
Njia | Maelezo |
---|---|
dispose |
Huharibu kitufe cha kipengele. (Huondoa data iliyohifadhiwa kwenye kipengele cha DOM) |
getInstance |
Njia tuli ambayo hukuruhusu kupata mfano wa kitufe kinachohusishwa na kipengee cha DOM, unaweza kuitumia kama hii: bootstrap.Button.getInstance(element) . |
getOrCreateInstance |
Mbinu tuli ambayo inarejesha mfano wa kitufe kinachohusishwa na kipengee cha DOM au kuunda kipya ikiwa hakijaanzishwa. Unaweza kuitumia kama hii bootstrap.Button.getOrCreateInstance(element) :. |
toggle |
Hugeuza hali ya kusukuma. Hutoa kitufe mwonekano kwamba kimewashwa. |
Kwa mfano, kugeuza vifungo vyote
document.querySelectorAll('.btn').forEach(buttonElement => {
const button = bootstrap.Button.getOrCreateInstance(buttonElement)
button.toggle()
})
CSS
Vigezo
Imeongezwa katika v5.2.0Kama sehemu ya mbinu ya mabadiliko ya vigeu vya CSS ya Bootstrap, vibonye sasa vinatumia viwezo vya ndani vya CSS .btn
ili kuboresha ubinafsishaji wa wakati halisi. Thamani za anuwai za CSS zimewekwa kupitia Sass, kwa hivyo ubinafsishaji wa Sass bado unatumika, pia.
--#{$prefix}btn-padding-x: #{$btn-padding-x};
--#{$prefix}btn-padding-y: #{$btn-padding-y};
--#{$prefix}btn-font-family: #{$btn-font-family};
@include rfs($btn-font-size, --#{$prefix}btn-font-size);
--#{$prefix}btn-font-weight: #{$btn-font-weight};
--#{$prefix}btn-line-height: #{$btn-line-height};
--#{$prefix}btn-color: #{$body-color};
--#{$prefix}btn-bg: transparent;
--#{$prefix}btn-border-width: #{$btn-border-width};
--#{$prefix}btn-border-color: transparent;
--#{$prefix}btn-border-radius: #{$btn-border-radius};
--#{$prefix}btn-hover-border-color: transparent;
--#{$prefix}btn-box-shadow: #{$btn-box-shadow};
--#{$prefix}btn-disabled-opacity: #{$btn-disabled-opacity};
--#{$prefix}btn-focus-box-shadow: 0 0 0 #{$btn-focus-width} rgba(var(--#{$prefix}btn-focus-shadow-rgb), .5);
Kila .btn-*
darasa la kirekebishaji husasisha vigeu vinavyofaa vya CSS ili kupunguza sheria za ziada za CSS na yetu button-variant()
, button-outline-variant()
, na button-size()
michanganyiko.
Huu hapa ni mfano wa kuunda .btn-*
darasa la kirekebishaji maalum kama tunavyofanya kwa vitufe vya kipekee kwa hati zetu kwa kugawa upya vigeu vya CSS vya Bootstrap na mchanganyiko wa anuwai zetu za CSS na Sass.
.btn-bd-primary {
--bs-btn-font-weight: 600;
--bs-btn-color: var(--bs-white);
--bs-btn-bg: var(--bd-violet);
--bs-btn-border-color: var(--bd-violet);
--bs-btn-border-radius: .5rem;
--bs-btn-hover-color: var(--bs-white);
--bs-btn-hover-bg: #{shade-color($bd-violet, 10%)};
--bs-btn-hover-border-color: #{shade-color($bd-violet, 10%)};
--bs-btn-focus-shadow-rgb: var(--bd-violet-rgb);
--bs-btn-active-color: var(--bs-btn-hover-color);
--bs-btn-active-bg: #{shade-color($bd-violet, 20%)};
--bs-btn-active-border-color: #{shade-color($bd-violet, 20%)};
}
Vigezo vya Sass
$btn-padding-y: $input-btn-padding-y;
$btn-padding-x: $input-btn-padding-x;
$btn-font-family: $input-btn-font-family;
$btn-font-size: $input-btn-font-size;
$btn-line-height: $input-btn-line-height;
$btn-white-space: null; // Set to `nowrap` to prevent text wrapping
$btn-padding-y-sm: $input-btn-padding-y-sm;
$btn-padding-x-sm: $input-btn-padding-x-sm;
$btn-font-size-sm: $input-btn-font-size-sm;
$btn-padding-y-lg: $input-btn-padding-y-lg;
$btn-padding-x-lg: $input-btn-padding-x-lg;
$btn-font-size-lg: $input-btn-font-size-lg;
$btn-border-width: $input-btn-border-width;
$btn-font-weight: $font-weight-normal;
$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075);
$btn-focus-width: $input-btn-focus-width;
$btn-focus-box-shadow: $input-btn-focus-box-shadow;
$btn-disabled-opacity: .65;
$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125);
$btn-link-color: var(--#{$prefix}link-color);
$btn-link-hover-color: var(--#{$prefix}link-hover-color);
$btn-link-disabled-color: $gray-600;
// Allows for customizing button radius independently from global border radius
$btn-border-radius: $border-radius;
$btn-border-radius-sm: $border-radius-sm;
$btn-border-radius-lg: $border-radius-lg;
$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
$btn-hover-bg-shade-amount: 15%;
$btn-hover-bg-tint-amount: 15%;
$btn-hover-border-shade-amount: 20%;
$btn-hover-border-tint-amount: 10%;
$btn-active-bg-shade-amount: 20%;
$btn-active-bg-tint-amount: 20%;
$btn-active-border-shade-amount: 25%;
$btn-active-border-tint-amount: 10%;
Mchanganyiko wa Sass
Kuna michanganyiko mitatu ya vitufe: michanganyiko ya vitufe na muhtasari wa lahaja (zote mbili zikizingatia $theme-colors
), pamoja na mchanganyiko wa ukubwa wa kitufe.
@mixin button-variant(
$background,
$border,
$color: color-contrast($background),
$hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)),
$hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)),
$hover-color: color-contrast($hover-background),
$active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)),
$active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)),
$active-color: color-contrast($active-background),
$disabled-background: $background,
$disabled-border: $border,
$disabled-color: color-contrast($disabled-background)
) {
--#{$prefix}btn-color: #{$color};
--#{$prefix}btn-bg: #{$background};
--#{$prefix}btn-border-color: #{$border};
--#{$prefix}btn-hover-color: #{$hover-color};
--#{$prefix}btn-hover-bg: #{$hover-background};
--#{$prefix}btn-hover-border-color: #{$hover-border};
--#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix($color, $border, 15%))};
--#{$prefix}btn-active-color: #{$active-color};
--#{$prefix}btn-active-bg: #{$active-background};
--#{$prefix}btn-active-border-color: #{$active-border};
--#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
--#{$prefix}btn-disabled-color: #{$disabled-color};
--#{$prefix}btn-disabled-bg: #{$disabled-background};
--#{$prefix}btn-disabled-border-color: #{$disabled-border};
}
@mixin button-outline-variant(
$color,
$color-hover: color-contrast($color),
$active-background: $color,
$active-border: $color,
$active-color: color-contrast($active-background)
) {
--#{$prefix}btn-color: #{$color};
--#{$prefix}btn-border-color: #{$color};
--#{$prefix}btn-hover-color: #{$color-hover};
--#{$prefix}btn-hover-bg: #{$active-background};
--#{$prefix}btn-hover-border-color: #{$active-border};
--#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)};
--#{$prefix}btn-active-color: #{$active-color};
--#{$prefix}btn-active-bg: #{$active-background};
--#{$prefix}btn-active-border-color: #{$active-border};
--#{$prefix}btn-active-shadow: #{$btn-active-box-shadow};
--#{$prefix}btn-disabled-color: #{$color};
--#{$prefix}btn-disabled-bg: transparent;
--#{$prefix}btn-disabled-border-color: #{$color};
--#{$prefix}gradient: none;
}
@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {
--#{$prefix}btn-padding-y: #{$padding-y};
--#{$prefix}btn-padding-x: #{$padding-x};
@include rfs($font-size, --#{$prefix}btn-font-size);
--#{$prefix}btn-border-radius: #{$border-radius};
}
Sass loops
Vibadala vya vitufe (kwa vitufe vya kawaida na vya muhtasari) hutumia michanganyiko yao husika na $theme-colors
ramani yetu ili kutoa madarasa ya kurekebisha katika scss/_buttons.scss
.
@each $color, $value in $theme-colors {
.btn-#{$color} {
@if $color == "light" {
@include button-variant(
$value,
$value,
$hover-background: shade-color($value, $btn-hover-bg-shade-amount),
$hover-border: shade-color($value, $btn-hover-border-shade-amount),
$active-background: shade-color($value, $btn-active-bg-shade-amount),
$active-border: shade-color($value, $btn-active-border-shade-amount)
);
} @else if $color == "dark" {
@include button-variant(
$value,
$value,
$hover-background: tint-color($value, $btn-hover-bg-tint-amount),
$hover-border: tint-color($value, $btn-hover-border-tint-amount),
$active-background: tint-color($value, $btn-active-bg-tint-amount),
$active-border: tint-color($value, $btn-active-border-tint-amount)
);
} @else {
@include button-variant($value, $value);
}
}
}
@each $color, $value in $theme-colors {
.btn-outline-#{$color} {
@include button-outline-variant($value);
}
}