קנעפּלעך
ניצן Bootstrap ס מנהג קנעפּל סטיילז פֿאַר אַקשאַנז אין פארמען, דיאַלאָגס און מער מיט שטיצן פֿאַר קייפל סיזעס, שטאַטן און מער.
ביישפילן
באָאָטסטראַפּ ינקלודז עטלעכע פּרעדעפינעד קנעפּל סטיילז, יעדער סערווינג זיין אייגענע סעמאַנטיק ציל, מיט עטלעכע עקסטראַז פֿאַר מער קאָנטראָל.
<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>
קאַנווייינג טייַטש צו אַסיסטיוו טעקנאַלאַדזשיז
ניצן קאָליר צו לייגן טייַטש בלויז גיט אַ וויזשאַוואַל אָנווייַז, וואָס וועט נישט זיין קאַנווייד צו יוזערז פון אַסיסטיוו טעקנאַלאַדזשיז - אַזאַ ווי פאַרשטעלן לייענער. פאַרזיכערן אַז אינפֿאָרמאַציע דינאָוטיד דורך די קאָליר איז קלאָר ווי דער טאָג פון די אינהאַלט זיך (למשל די קענטיק טעקסט), אָדער איז אַרייַנגערעכנט דורך אָלטערנאַטיוו מיטל, אַזאַ ווי נאָך טעקסט פאַרבאָרגן מיט די .visually-hidden
קלאַס.
דיסייבאַל טעקסט ראַפּינג
אויב איר טאָן ניט וועלן די קנעפּל טעקסט צו ייַנוויקלען, איר קענען לייגן דעם .text-nowrap
קלאַס צו די קנעפּל. אין Sass, איר קענען שטעלן $btn-white-space: nowrap
צו דיסייבאַל טעקסט ראַפּינג פֿאַר יעדער קנעפּל.
קנעפּל טאַגס
די .btn
קלאסן זענען דיזיינד צו זיין געוויינט מיט דעם <button>
עלעמענט. אָבער, איר קענט אויך נוצן די קלאסן אויף <a>
אָדער<input>
עלעמענטן (כאָטש עטלעכע בראַוזערז קען צולייגן אַ ביסל אַנדערש רענדערינג).
ווען ניצן קנעפּל קלאסן אויף <a>
עלעמענטן וואָס זענען גענוצט צו צינגל אין-בלאַט פאַנגקשאַנאַליטי (ווי קאַלאַפּסינג אינהאַלט), אלא ווי פֿאַרבינדונג צו נייַע בלעטער אָדער סעקשאַנז אין דעם קראַנט בלאַט, די לינקס זאָל זיין געגעבן אַ role="button"
צו אַפּראָופּרייטלי קאַנוויי זייער ציל צו אַסיסטיוו טעקנאַלאַדזשיז אַזאַ ווי פאַרשטעלן לייענער.
<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">
אַוטליין קנעפּלעך
איר דאַרפֿן אַ קנעפּל, אָבער נישט די כעפטי הינטערגרונט פֿאַרבן זיי ברענגען? פאַרבייַטן די פעליקייַט מאָדיפיער קלאסן מיט די .btn-outline-*
אָנעס צו באַזייַטיקן אַלע הינטערגרונט בילדער און פארבן אויף קיין קנעפּל.
<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>
סיזעס
ליב געהאט גרעסערע אָדער קלענערער קנעפּלעך? לייג .btn-lg
אָדער .btn-sm
פֿאַר נאָך סיזעס.
<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>
איר קענען אפילו ראָולד דיין אייגענע מנהג סייזינג מיט 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>
פאַרקריפּלט שטאַט
מאַכן די קנעפּלעך ינאַקטיוו דורך אַדינג די disabled
בוליאַן אַטריביוט צו קיין <button>
עלעמענט. פאַרקריפּלט קנעפּלעך האָבן pointer-events: none
געווענדט צו, פּרעווענטינג האָווער און אַקטיוו שטאַטן פון טריגערינג.
<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>
פאַרקריפּלט קנעפּלעך ניצן דעם <a>
עלעמענט ביכייוו אַ ביסל אַנדערש:
<a>
s טאָן ניט שטיצן דעםdisabled
אַטריביוט, אַזוי איר מוזן לייגן די.disabled
קלאַס צו מאַכן עס וויזשוואַלי דערשייַנען פאַרקריפּלט.- עטלעכע צוקונפֿט-פרייַנדלעך סטיילז זענען אַרייַנגערעכנט צו דיסייבאַל אַלע
pointer-events
אויף אַנקער קנעפּלעך. - פאַרקריפּלט קנעפּלעך ניצן
<a>
זאָל אַרייַננעמען דיaria-disabled="true"
אַטריביוט צו אָנווייַזן די שטאַט פון די עלעמענט צו אַסיסטיוו טעקנאַלאַדזשיז. - ניצן די פאַרקריפּלט קנעפּלעך
<a>
זאָל נישט אַרייַננעמען דיhref
אַטריביוט.
<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>
לינק פאַנגקשאַנאַליטי קייוויאַט
צו דעקן קאַסעס ווען איר האָבן צו האַלטן די href
אַטריביוט אויף אַ פאַרקריפּלט לינק, די .disabled
קלאַס ניצט pointer-events: none
צו פּרובירן צו דיסייבאַל די לינק פאַנגקשאַנאַליטי פון <a>
s. באַמערקונג אַז דעם CSS פאַרמאָג איז נישט נאָך סטאַנדערדייזד פֿאַר HTML, אָבער אַלע מאָדערן בראַוזערז שטיצן עס. אין אַדישאַן, אפילו אין בראַוזערז וואָס שטיצן pointer-events: none
, קלאַוויאַטור נאַוויגאַציע בלייבט אַנאַפעקטיד, טייַטש אַז סייטיד קלאַוויאַטור יוזערז און יוזערז פון אַסיסטאַטיוו טעקנאַלאַדזשיז קענען נאָך אַקטאַווייט די לינקס. אַזוי צו זיין זיכער, אין אַדישאַן צו aria-disabled="true"
, אויך אַרייַננעמען אַ tabindex="-1"
אַטריביוט אויף די פֿאַרבינדונגען צו פאַרמייַדן זיי פון ריסיווינג קלאַוויאַטור פאָקוס, און נוצן מנהג דזשאַוואַסקריפּט צו דיסייבאַל זייער פאַנגקשאַנאַליטי בעסאַכאַקל.
<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>
פאַרשפּאַרן קנעפּלעך
שאַפֿן אָפּרופיק סטאַקס פון פול-ברייט "בלאָק קנעפּלעך" ווי די אין Bootstrap 4 מיט אַ מישן פון אונדזער אַרויסווייַזן און ריס יוטילאַטיז. דורך ניצן יוטילאַטיז אַנשטאָט פון קנעפּל ספּעציפיש קלאסן, מיר האָבן פיל מער קאָנטראָל איבער ספּייסינג, אַליינמאַנט און אָפּרופיק ביכייוויערז.
<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>
דאָ מיר מאַכן אַ אָפּרופיק ווערייישאַן, סטאַרטינג מיט ווערטיקלי סטאַקט קנעפּלעך ביז די md
ברייקפּוינט, ווו .d-md-block
ריפּלייסיז די .d-grid
קלאַס, אַזוי נאַליפיינג די gap-2
נוצן. רעסיזע דיין בלעטערער צו זען זיי טוישן.
<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>
איר קענען סטרויערן די ברייט פון דיין בלאָק קנעפּלעך מיט גריד זייַל ברייט קלאסן. למשל, פֿאַר אַ האַלב-ברייט "בלאָק קנעפּל", נוצן .col-6
. צענטער עס כאָריזאַנטאַלי מיט .mx-auto
אויך.
<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>
נאָך יוטילאַטיז קענען זיין געוויינט צו סטרויערן די אַליינמאַנט פון קנעפּלעך ווען האָריזאָנטאַל. דאָ מיר האָבן גענומען אונדזער פריערדיקן אָפּרופיק בייַשפּיל און צוגעגעבן עטלעכע פלעקס יוטילאַטיז און אַ גרענעץ נוצן אויף די קנעפּל צו רעכט ייַנרייען די קנעפּלעך ווען זיי זענען ניט מער סטאַקט.
<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>
קנעפּל פּלוגין
די קנעפּל פּלוגין אַלאַוז איר צו שאַפֿן פּשוט אויף / אַוועק טאַגאַל קנעפּלעך.
באַשטימען שטאַטן
לייג צו באַשטימען די שטאַט data-bs-toggle="button"
פון אַ קנעפּל . active
אויב איר פאַר - טאַגאַלינג אַ קנעפּל, איר מוזן מאַניואַלי לייגן די .active
קלאַס און aria-pressed="true"
צו ענשור אַז עס איז קאַנווייד אַפּראָופּרייטלי צו אַסיסטיוו טעקנאַלאַדזשיז.
<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>
מעטהאָדס
איר קענען מאַכן אַ קנעפּל בייַשפּיל מיט די קנעפּל קאַנסטראַקטער, למשל:
const bsButton = new bootstrap.Button('#myButton')
מעטאָד | באַשרייַבונג |
---|---|
dispose |
דיסטרויז אַן עלעמענט ס קנעפּל. (רימוווז סטאָרד דאַטן אויף די DOM עלעמענט) |
getInstance |
סטאַטיק אופֿן וואָס אַלאַוז איר צו באַקומען די קנעפּל בייַשפּיל פארבונדן צו אַ DOM עלעמענט, איר קענען נוצן עס ווי דאָס: bootstrap.Button.getInstance(element) . |
getOrCreateInstance |
סטאַטיק אופֿן וואָס קערט אַ קנעפּל בייַשפּיל פֿאַרבונדן צו אַ DOM עלעמענט אָדער שאַפֿן אַ נייַע אין פאַל עס איז נישט יניטיאַלייזד. איר קענען נוצן עס ווי דאָס: bootstrap.Button.getOrCreateInstance(element) . |
toggle |
טאַגאַלז שטופּן שטאַט. גיט דעם קנעפּל די אויסזען אַז עס איז אַקטיווייטיד. |
פֿאַר בייַשפּיל, צו באַשטימען אַלע קנעפּלעך
document.querySelectorAll('.btn').forEach(buttonElement => {
const button = bootstrap.Button.getOrCreateInstance(buttonElement)
button.toggle()
})
CSS
וועריאַבאַלז
צוגעגעבן אין וו5.2.0ווי אַ טייל פון Bootstrap ס יוואַלווינג CSS וועריאַבאַלז צוגאַנג, קנעפּלעך איצט נוצן היגע CSS וועריאַבאַלז .btn
פֿאַר ימפּרוווד פאַקטיש-צייט קוסטאָמיזאַטיאָן. וואַלועס פֿאַר די CSS וועריאַבאַלז זענען באַשטימט דורך סאַס, אַזוי סאַס קוסטאָמיזאַטיאָן איז נאָך געשטיצט אויך.
--#{$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);
יעדער .btn-*
מאָדיפיער קלאַס דערהייַנטיקט די צונעמען קסס וועריאַבאַלז צו מינאַמייז נאָך קסס כּללים מיט אונדזער button-variant()
, button-outline-variant()
, און button-size()
מיקסינס.
דאָ איז אַ ביישפּיל פון בויען אַ מנהג .btn-*
מאָדיפיער קלאַס ווי מיר טאָן פֿאַר די קנעפּלעך יינציק צו אונדזער דאָקומענטן דורך ריאַסיינינג די CSS וועריאַבאַלז פון Bootstrap מיט אַ געמיש פון אונדזער אייגענע CSS און 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%)};
}
סאָס וועריאַבאַלז
$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%;
סאַס מיקסינס
עס זענען דריי מיקסינס פֿאַר קנעפּלעך: קנעפּל און קנעפּל אַוטליין וואַריאַנט מיקסינס (ביידע באזירט אויף $theme-colors
), פּלוס אַ קנעפּל גרייס מיקסין.
@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};
}
סאַס לופּס
קנעפּל וועריאַנץ (פֿאַר רעגולער און אַוטליין קנעפּלעך) נוצן זייער ריספּעקטיוו מיקסינס מיט אונדזער $theme-colors
מאַפּע צו דזשענערייט די מאָדיפיער קלאסן אין 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);
}
}