मुख्य विषयवस्तु में जाएं डॉक्स नेविगेशन पर जाएं
in English

बटन

कई आकारों, स्थितियों, और बहुत कुछ के समर्थन के साथ प्रपत्रों, संवादों, और बहुत कुछ में क्रियाओं के लिए बूटस्ट्रैप की कस्टम बटन शैलियों का उपयोग करें।

उदाहरण

बूटस्ट्रैप में कई पूर्वनिर्धारित बटन शैलियाँ शामिल हैं, जिनमें से प्रत्येक अपने स्वयं के अर्थपूर्ण उद्देश्य की पूर्ति करती है, जिसमें कुछ अतिरिक्त नियंत्रण के लिए फेंके गए हैं।

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

अक्षम राज्य

किसी भी तत्व में 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वर्ग एस की लिंक कार्यक्षमता को अक्षम करने का प्रयास करने के लिए उपयोग करता है pointer-events: none, <a>लेकिन वह सीएसएस संपत्ति अभी तक मानकीकृत नहीं है। इसके अलावा, यहां तक ​​कि समर्थन करने वाले ब्राउज़र में भी pointer-events: none, कीबोर्ड नेविगेशन अप्रभावित रहता है, जिसका अर्थ है कि देखे गए कीबोर्ड उपयोगकर्ता और सहायक तकनीकों के उपयोगकर्ता अभी भी इन लिंक को सक्रिय करने में सक्षम होंगे। इसलिए सुरक्षित रहने के लिए , इन लिंक पर aria-disabled="true"एक विशेषता भी शामिल करें ताकि उन्हें कीबोर्ड फ़ोकस प्राप्त करने से रोका जा सके, और उनकी कार्यक्षमता को पूरी तरह से अक्षम करने के लिए कस्टम जावास्क्रिप्ट का उपयोग करें।tabindex="-1"

ब्लॉक बटन

हमारे डिस्प्ले और गैप यूटिलिटीज के मिश्रण के साथ बूटस्ट्रैप 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>

बटन प्लगइन

बटन प्लगइन आपको सरल चालू/बंद टॉगल बटन बनाने की अनुमति देता है।

दिखने में, ये टॉगल बटन चेकबॉक्स टॉगल बटन के समान होते हैं । हालांकि, उन्हें सहायक तकनीकों द्वारा अलग-अलग तरीके से बताया जाता है: स्क्रीन रीडर द्वारा चेकबॉक्स टॉगल की घोषणा "चेक" / "चेक नहीं की गई" के रूप में की जाएगी (क्योंकि, उनकी उपस्थिति के बावजूद, वे मूल रूप से अभी भी चेकबॉक्स हैं), जबकि इन टॉगल बटनों की घोषणा की जाएगी। "बटन"/"बटन दबाया गया"। इन दो दृष्टिकोणों के बीच चुनाव आपके द्वारा बनाए जा रहे टॉगल के प्रकार पर निर्भर करेगा, और जब चेकबॉक्स या वास्तविक बटन के रूप में घोषित किया जाता है तो टॉगल उपयोगकर्ताओं को समझ में आता है या नहीं।

राज्य टॉगल करें

data-bs-toggle="button"एक बटन की activeस्थिति को टॉगल करने के लिए जोड़ें । यदि आप बटन को प्री-टॉगल कर रहे हैं, तो आपको मैन्युअल रूप से .activeकक्षा को जोड़ना होगा और aria-pressed="true" यह सुनिश्चित करना होगा कि यह सहायक तकनीकों को उचित रूप से अवगत कराया गया है।

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

तरीकों

आप बटन कंस्ट्रक्टर के साथ एक बटन इंस्टेंस बना सकते हैं, उदाहरण के लिए:

var button = document.getElementById('myButton')
var bsButton = new bootstrap.Button(button)
तरीका विवरण
toggle पुश स्थिति को टॉगल करता है। बटन को यह आभास देता है कि वह सक्रिय हो गया है।
dispose एक तत्व के बटन को नष्ट कर देता है। (डीओएम तत्व पर संग्रहीत डेटा हटा देता है)
getInstance स्टेटिक विधि जो आपको डीओएम तत्व से जुड़े बटन इंस्टेंस को प्राप्त करने की अनुमति देती है, आप इसे इस तरह उपयोग कर सकते हैं:bootstrap.Button.getInstance(element)
getOrCreateInstance स्टेटिक विधि जो किसी DOM तत्व से जुड़े बटन इंस्टेंस को लौटाती है या यदि इसे प्रारंभ नहीं किया गया था तो एक नया बनाएं। आप इसे इस तरह इस्तेमाल कर सकते हैं:bootstrap.Button.getOrCreateInstance(element)

उदाहरण के लिए, सभी बटनों को टॉगल करने के लिए

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

सास

चर

$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%;

मिक्सिन्स

बटन के लिए तीन मिक्सिन हैं: बटन और बटन आउटलाइन वेरिएंट मिक्सिन (दोनों पर आधारित $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)
) {
  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);
}

छोरों

बटन वेरिएंट (नियमित और आउटलाइन बटन के लिए) $theme-colorsसंशोधक वर्ग उत्पन्न करने के लिए हमारे मानचित्र के साथ अपने संबंधित मिश्रण का उपयोग करते हैं 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);
  }
}