ئاساسلىق مەزمۇنغا ئاتلاڭ Docs يول باشلاش
in English

كۇنۇپكىلار

Bootstrap نىڭ ئىختىيارى كۇنۇپكا ئۇسلۇبىنى شەكىل ، دىئالوگ ۋە تېخىمۇ كۆپ چوڭلۇق ، شىتات ۋە باشقىلارنى قوللاپ ھەرىكەت قىلىڭ.

مىساللار

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>
بەزى كۇنۇپكا ئۇسلۇبلىرى نىسبەتەن سۇس ئالدى رەڭنى ئىشلىتىدۇ ، يېتەرلىك سېلىشتۇرما بولۇش ئۈچۈن پەقەت قاراڭغۇ تەگلىكتە ئىشلىتىش كېرەك.

Size

چوڭ ياكى كىچىك كۇنۇپكىلارمۇ؟ قوشۇمچە .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>

چەكلەنگەن ھالەت

ھەر قانداق ئېلېمېنتقا disabledبولان خاسلىقىنى قوشۇش ئارقىلىق كۇنۇپكىلارنى ھەرىكەتسىز كۆرسىتىدۇ . <button>چەكلەنگەن كۇنۇپكىلار pointer-events: noneقوللىنىلىپ ، ئايلىنىش ۋە ئاكتىپ ھالەتلەرنىڭ قوزغىلىشىنىڭ ئالدىنى ئالىدۇ.

<button type="button" class="btn btn-lg btn-primary" disabled>Primary button</button>
<button type="button" class="btn btn-secondary btn-lg" disabled>Button</button>

ئېلېمېنتنى ئىشلىتىپ چەكلەنگەن كۇنۇپكىلار <a>بىر ئاز ئوخشىمايدۇ:

  • <a>s بۇ خاسلىقنى قوللىمايدۇ ، شۇڭا ئۇنى چوقۇم كۆرۈنۈشنى چەكلەش ئۈچۈن سىنىپ disabledقوشۇشىڭىز كېرەك ..disabled
  • pointer-eventsكەلگۈسىدىكى بەزى دوستانە ئۇسلۇبلار لەڭگەر كۇنۇپكىلىرىنىڭ ھەممىسىنى چەكلەش ئۈچۈن كىرگۈزۈلگەن .
  • چەكلەنگەن كۇنۇپكىلار aria-disabled="true"ياردەمچى تېخنىكىلارغا ئېلېمېنتنىڭ ھالىتىنى كۆرسىتىش ئۈچۈن خاسلىقنى ئۆز ئىچىگە ئېلىشى كېرەك.
<a href="#" class="btn btn-primary btn-lg disabled" tabindex="-1" role="button" aria-disabled="true">Primary link</a>
<a href="#" class="btn btn-secondary btn-lg disabled" tabindex="-1" role="button" aria-disabled="true">Link</a>

بۇ .disabledسىنىپ s نىڭ pointer-events: noneئۇلىنىش ئىقتىدارىنى چەكلەشكە ئۇرۇندى <a>، ئەمما CSS خاسلىقى تېخى قېلىپلاشمىدى. ئۇنىڭدىن باشقا ، قوللايدىغان توركۆرگۈچلەردىمۇ pointer-events: noneكۇنۇپكا تاختىسىنىڭ يول باشلىشى تەسىرگە ئۇچرىمايدۇ ، يەنى كۆرۈش كۇنۇپكا تاختىسى ئىشلەتكۈچىلەر ۋە ياردەمچى تېخنىكىلارنى ئىشلەتكۈچىلەر يەنىلا بۇ ئۇلىنىشلارنى قوزغىتالايدۇ. شۇڭا بىخەتەر بولۇشتىن باشقا ، aria-disabled="true"بۇ tabindex="-1"ئۇلىنىشلارغا خاسلىق كىرگۈزۈپ ، ئۇلارنىڭ كۇنۇپكا تاختىسىنىڭ فوكۇسنى قوبۇل قىلىشىنىڭ ئالدىنى ئالىدۇ ھەمدە خاس JavaScript ئارقىلىق ئۇلارنىڭ ئىقتىدارىنى پۈتۈنلەي چەكلەيدۇ.

چەكلەش كۇنۇپكىلىرى

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-gridgap-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>

كۇنۇپكا قىستۇرمىسى

بۇ كۇنۇپكا قىستۇرمىسى ئاددىي قوزغىتىش / تاقاش كۇنۇپكىسىنى قۇرالايسىز.

كۆرۈنۈشتە ، بۇ قوزغىتىش كۇنۇپكىلىرى تەكشۈرۈش رامكىسىنى ئالماشتۇرۇش كۇنۇپكىسى بىلەن ئوخشاش . قانداقلا بولمىسۇن ، ئۇلار ياردەمچى تېخنىكىلار ئارقىلىق باشقىچە يەتكۈزۈلىدۇ: تەكشۈرۈش رامكىسى ئالماشتۇرغۇچ ئېكران ئوقۇرمەنلىرى تەرىپىدىن «تەكشۈرۈلگەن» / «تەكشۈرۈلمىگەن» دەپ ئېلان قىلىنىدۇ (گەرچە ئۇلارنىڭ تاشقى كۆرۈنۈشىگە قارىماي ، ئۇلار يەنىلا تەكشۈرۈش ساندۇقى) ، ئەمما بۇ قوزغىتىش كۇنۇپكىلىرى ئېلان قىلىنىدۇ «كۇنۇپكا» / «كۇنۇپكا بېسىلدى». بۇ ئىككى خىل ئۇسۇلنىڭ تاللىنىشى سىز قۇرغان توكنىڭ تۈرىگە باغلىق ، تەكشۈرۈش ساندۇقى ياكى ئەمەلىي كۇنۇپكا سۈپىتىدە ئېلان قىلىنغاندا ، بۇ قوزغىتىشنىڭ ئابونتلارغا نىسبەتەن ئەھمىيىتى بار-يوقلۇقىغا باغلىق.

Toggle states

Add data-bs-toggle="button" to toggle a button’s active state. If you’re pre-toggling a button, you must manually add the .active class and aria-pressed="true" to ensure that it is conveyed appropriately to assistive technologies.

<button type="button" class="btn btn-primary" data-bs-toggle="button" autocomplete="off">Toggle button</button>
<button type="button" class="btn btn-primary active" data-bs-toggle="button" autocomplete="off" aria-pressed="true">Active toggle button</button>
<button type="button" class="btn btn-primary" disabled data-bs-toggle="button" autocomplete="off">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 href="#" class="btn btn-primary disabled" tabindex="-1" aria-disabled="true" role="button" data-bs-toggle="button">Disabled toggle link</a>

Methods

You can create a button instance with the button constructor, for example:

var button = document.getElementById('myButton')
var bsButton = new bootstrap.Button(button)
Method Description
toggle Toggles push state. Gives the button the appearance that it has been activated.
dispose Destroys an element's button. (Removes stored data on the DOM element)
getInstance Static method which allows you to get the button instance associated to a DOM element, you can use it like this: bootstrap.Button.getInstance(element)
getOrCreateInstance Static method which returns a button instance associated to a DOM element or create a new one in case it wasn't initialised. You can use it like this: bootstrap.Button.getOrCreateInstance(element)

For example, to toggle all buttons

var buttons = document.querySelectorAll('.btn')
buttons.forEach(function (button) {
  var button = new bootstrap.Button(button)
  button.toggle()
})

Sass

Variables

$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:              $link-color;
$btn-link-hover-color:        $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%;

Mixins

There are three mixins for buttons: button and button outline variant mixins (both based on $theme-colors), plus a button size mixin.

@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)
) {
  color: $color;
  @include gradient-bg($background);
  border-color: $border;
  @include box-shadow($btn-box-shadow);

  &:hover {
    color: $hover-color;
    @include gradient-bg($hover-background);
    border-color: $hover-border;
  }

  .btn-check:focus + &,
  &:focus {
    color: $hover-color;
    @include gradient-bg($hover-background);
    border-color: $hover-border;
    @if $enable-shadows {
      @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5));
    } @else {
      // Avoid using mixin so we can pass custom focus shadow properly
      box-shadow: 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5);
    }
  }

  .btn-check:checked + &,
  .btn-check:active + &,
  &:active,
  &.active,
  .show > &.dropdown-toggle {
    color: $active-color;
    background-color: $active-background;
    // Remove CSS gradients if they're enabled
    background-image: if($enable-gradients, none, null);
    border-color: $active-border;

    &:focus {
      @if $enable-shadows {
        @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5));
      } @else {
        // Avoid using mixin so we can pass custom focus shadow properly
        box-shadow: 0 0 0 $btn-focus-width rgba(mix($color, $border, 15%), .5);
      }
    }
  }

  &:disabled,
  &.disabled {
    color: $disabled-color;
    background-color: $disabled-background;
    // Remove CSS gradients if they're enabled
    background-image: if($enable-gradients, none, null);
    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)
) {
  color: $color;
  border-color: $color;

  &:hover {
    color: $color-hover;
    background-color: $active-background;
    border-color: $active-border;
  }

  .btn-check:focus + &,
  &:focus {
    box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
  }

  .btn-check:checked + &,
  .btn-check:active + &,
  &:active,
  &.active,
  &.dropdown-toggle.show {
    color: $active-color;
    background-color: $active-background;
    border-color: $active-border;

    &:focus {
      @if $enable-shadows {
        @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));
      } @else {
        // Avoid using mixin so we can pass custom focus shadow properly
        box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
      }
    }
  }

  &:disabled,
  &.disabled {
    color: $color;
    background-color: transparent;
  }
}
@mixin button-size($padding-y, $padding-x, $font-size, $border-radius) {
  padding: $padding-y $padding-x;
  @include font-size($font-size);
  // Manually declare to provide an override to the browser default
  @include border-radius($border-radius, 0);
}

Loops

Button variants (for regular and outline buttons) use their respective mixins with our $theme-colors map to generate the modifier classes in scss/_buttons.scss.

@each $color, $value in $theme-colors {
  .btn-#{$color} {
    @include button-variant($value, $value);
  }
}

@each $color, $value in $theme-colors {
  .btn-outline-#{$color} {
    @include button-outline-variant($value);
  }
}