6.7 KiB
layout | title | description | group | toc |
---|---|---|---|---|
docs | Buttons | Use Bootstrap's custom button styles for actions in forms, dialogs, and more with support for multiple sizes, states, and more. | components | true |
Examples
Bootstrap includes several predefined button styles, each serving its own semantic purpose, with a few extras thrown in for more control.
{{< example >}} {{< buttons.inline >}} {{- range (index $.Site.Data "theme-colors") }} {{ .name | title }} {{- end -}} {{< /buttons.inline >}}
Link {{< /example >}}
{{< callout info >}} {{< partial "callout-warning-color-assistive-technologies.md" >}} {{< /callout >}}
Disable text wrapping
If you don't want the button text to wrap, you can add the .text-nowrap
class to the button. In Sass, you can set $btn-white-space: nowrap
to disable text wrapping for each button.
Button tags
The .btn
classes are designed to be used with the <button>
element. However, you can also use these classes on <a>
or <input>
elements (though some browsers may apply a slightly different rendering).
When using button classes on <a>
elements that are used to trigger in-page functionality (like collapsing content), rather than linking to new pages or sections within the current page, these links should be given a role="button"
to appropriately convey their purpose to assistive technologies such as screen readers.
{{< example >}} Link Button {{< /example >}}
Outline buttons
In need of a button, but not the hefty background colors they bring? Replace the default modifier classes with the .btn-outline-*
ones to remove all background images and colors on any button.
{{< example >}} {{< buttons.inline >}} {{- range (index $.Site.Data "theme-colors") }} {{ .name | title }} {{- end -}} {{< /buttons.inline >}} {{< /example >}}
Sizes
Fancy larger or smaller buttons? Add .btn-lg
or .btn-sm
for additional sizes.
{{< example >}} Large button Large button {{< /example >}}
{{< example >}} Small button Small button {{< /example >}}
Create block level buttons—those that span the full width of a parent—by adding .btn-block
.
{{< example >}} Block level button Block level button {{< /example >}}
Disabled state
Make buttons look inactive by adding the disabled
boolean attribute to any <button>
element. Disabled buttons have pointer-events: none
applied to, preventing hover and active states from triggering.
{{< example >}} Primary button Button {{< /example >}}
Disabled buttons using the <a>
element behave a bit different:
<a>
s don't support thedisabled
attribute, so you must add the.disabled
class to make it visually appear disabled.- Some future-friendly styles are included to disable all
pointer-events
on anchor buttons. In browsers which support that property, you won't see the disabled cursor at all. - Disabled buttons should include the
aria-disabled="true"
attribute to indicate the state of the element to assistive technologies.
{{< example >}} Primary link Link {{< /example >}}
{{< callout warning >}}
Link functionality caveat
The .disabled
class uses pointer-events: none
to try to disable the link functionality of <a>
s, but that CSS property is not yet standardized. In addition, even in browsers that do support pointer-events: none
, keyboard navigation remains unaffected, meaning that sighted keyboard users and users of assistive technologies will still be able to activate these links. So to be safe, add a tabindex="-1"
attribute on these links (to prevent them from receiving keyboard focus) and use custom JavaScript to disable their functionality.
{{< /callout >}}
Button plugin
The button plugin allows you to create simple on/off toggle buttons.
Toggle states
Add data-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 the <button>
.
{{< example >}} Toggle button Active toggle button Disabled toggle button {{< /example >}}
{{< example >}} Toggle link Active toggle link Disabled toggle link {{< /example >}}
Methods
You can create a button instance with the button constructor, for example:
{{< highlight js >}} var button = document.getElementById('myButton') var bsButton = new bootstrap.Button(button) {{< /highlight >}}
Method | Description |
---|---|
toggle
|
Toggles push state. Gives the button the appearance that it has been activated. |
dispose
|
Destroys an element's button. |
For example, to toggle all buttons
{{< highlight js >}} var buttons = document.querySelectorAll('.btn') buttons.forEach(function (button) { var button = new bootstrap.Button(button) button.toggle() }) {{< /highlight >}}