bokotra
Mampiasà fomba bokotra mahazatra an'ny Bootstrap ho an'ny hetsika amin'ny endrika, fifanakalozan-kevitra, ary maro hafa miaraka amin'ny fanohanana ny habe, fanjakana ary maro hafa.
OHATRA
Ny Bootstrap dia misy karazana bokotra maromaro efa voafaritra mialoha, samy manana ny tanjony manokana, miaraka amin'ny fanampiny vitsivitsy natsipy mba hifehezana bebe kokoa.
<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>
Fampitaovana ny dikan'ny teknôlôjia manampy
Ny fampiasana loko hanampiana dikany dia manome famantarana hita maso ihany, izay tsy hampitaina amin'ireo mpampiasa teknolojia manampy - toy ny mpamaky efijery. Ataovy azo antoka fa ny fampahalalana voatondro amin'ny loko dia na miharihary amin'ny atiny (ohatra ny lahatsoratra hita maso), na ampidirina amin'ny fomba hafa, toy ny lahatsoratra fanampiny miafina miaraka amin'ny .visually-hidden
kilasy.
Atsaharo ny famonosana lahatsoratra
Raha tsy tianao ny bokotra soratra dia azonao atao ny manampy ny .text-nowrap
kilasy amin'ny bokotra. Ao amin'ny Sass, azonao atao $btn-white-space: nowrap
ny manafoana ny famonosana lahatsoratra ho an'ny bokotra tsirairay.
Tags bokotra
Ny .btn
kilasy dia natao hampiasaina amin'ny <button>
singa. Na izany aza, azonao atao koa ny mampiasa ireo kilasy <a>
na <input>
singa ireo (na dia mety hampihatra fandikana hafa kely aza ny navigateur sasany).
Rehefa mampiasa kilasin'ny bokotra amin'ny <a>
singa ampiasaina hanesorana ny fampiasa ao anaty pejy (toy ny votoaty mirodana), fa tsy mampifandray amin'ny pejy na fizarana vaovao ao anatin'ny pejy ankehitriny, dia tokony omena ireto rohy ireto role="button"
mba hampita ny tanjony amin'ny teknolojia manampy toy ny mpamaky efijery.
<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">
Bokotra misongadina
Mila bokotra, fa tsy ny lokon'ny lamosina mahery vaika entin'izy ireo? Soloy amin'ireo kilasy fanovàna .btn-outline-*
mahazatra ireo mba hanesorana ny sary sy loko rehetra amin'ny bokotra rehetra.
<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>
habe
Mitady bokotra lehibe kokoa na kely kokoa? Ampio .btn-lg
na .btn-sm
habe fanampiny.
<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>
Azonao atao mihitsy aza ny manodina ny habenao manokana miaraka amin'ny fari-piadidiana 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>
Fanjakana kilemaina
Ataovy toy ny tsy mavitrika ny bokotra amin'ny fampidirana ny disabled
toetra boolean amin'ny <button>
singa rehetra. Ny bokotra kilemaina dia pointer-events: none
nampiharina tamin'ny, manakana ny hover sy ny fanjakana mavitrika tsy hivezivezy.
<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>
Ny bokotra kilemaina mampiasa ilay <a>
singa dia somary hafa ihany ny fitondrantena:
<a>
s tsy manohana nydisabled
toetra, noho izany dia tsy maintsy ampidirinao ny.disabled
kilasy mba hahatonga azy ho kilemaina.- Misy endrika sariaka amin'ny ho avy ampidirina mba hanesorana ny
pointer-events
bokotra vatofantsika rehetra. - Ny bokotra kilemaina ampiasaina
<a>
dia tokony ahitana nyaria-disabled="true"
toetra hanondro ny toetran'ilay singa amin'ny teknolojia manampy. - Ny bokotra kilemaina ampiasaina
<a>
dia tsy tokony ahitana nyhref
toetra.
<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>
Fampitandremana momba ny fiasa rohy
Mba handrakofana ireo tranga izay tsy maintsy itazonanao ny href
toetra amin'ny rohy kilemaina, ny .disabled
kilasy dia mampiasa pointer-events: none
ny hanandrana manafoana ny fiasan'ny rohy an'ny <a>
s. Mariho fa ity fananana CSS ity dia tsy mbola manara-penitra ho an'ny HTML, fa ny navigateur maoderina rehetra dia manohana azy. Fanampin'izany, na dia ao amin'ny mpitety tranonkala manohana aza pointer-events: none
, dia mbola tsy misy fiantraikany ny fitetezana kitendry, izany hoe mbola afaka manetsika ireo rohy ireo ny mpampiasa klavier sy ny mpampiasa ny teknolojia mpanampy. Noho izany, mba ho azo antoka, ankoatra ny aria-disabled="true"
, dia ampidiro ihany koa ny tabindex="-1"
toetra iray ao amin'ireo rohy ireo mba hisakanana azy ireo tsy hahazo fifantohana amin'ny fitendry, ary ampiasao ny JavaScript manokana mba hanesorana tanteraka ny fampiasany.
<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>
Bokotra sakana
Mamorona antontam-panentanana feno, "bokotra sakana" toy ny ao amin'ny Bootstrap 4 miaraka amin'ny fifangaroan'ny fampiratiana sy ny banga. Amin'ny alàlan'ny fampiasana fitaovana fa tsy kilasy manokana amin'ny bokotra, dia manana fifehezana bebe kokoa momba ny elanelana, ny fampifanarahana ary ny fihetsika mandray andraikitra.
<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>
Eto isika dia mamorona fiovaovana mamaly, manomboka amin'ny bokotra mitsangana mitsangana mandra-pahatongan'ny teboka md
, izay .d-md-block
manolo ny .d-grid
kilasy, ka manafoana ny gap-2
fitaovana. Hanova ny haben'ny mpitety tranonkalanao mba hahitana azy ireo miova.
<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>
Azonao atao ny manitsy ny sakan'ny bokotra sakana miaraka amin'ny kilasy sakan'ny tsanganana grid. Ohatra, ho an'ny "bokotra sakana" ny antsasaky ny sakany, ampiasao .col-6
. Aforeto mitsivalana miaraka amin'ny .mx-auto
, koa.
<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>
Ny fitaovana fanampiny dia azo ampiasaina hanitsiana ny fampifanarahana ny bokotra rehefa mitsivalana. Eto izahay dia naka ny ohatra noraisinay teo aloha ary nampiana fitaovana flex sy fampiasa amin'ny sisiny eo amin'ny bokotra hanitsiana havanana ny bokotra rehefa tsy tafapetraka intsony.
<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>
Plugin bokotra
Ny plugin bokotra dia ahafahanao mamorona bokotra toggle on/off tsotra.
Toggle fanjakana
Ampio data-bs-toggle="button"
mba hanova ny toetry ny bokotra active
. Raha toa ianao ka manodina bokotra mialoha, dia tsy maintsy ampidirinao amin'ny tanana ny .active
kilasy ary aria-pressed="true"
mba hahazoana antoka fa ampita tsara amin'ny teknolojia manampy izany.
<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>
fomba
Azonao atao ny mamorona ohatra bokotra miaraka amin'ny mpamorona bokotra, ohatra:
const bsButton = new bootstrap.Button('#myButton')
FOMBA | Description |
---|---|
dispose |
Manimba ny bokotra singa iray. (Esory ny angona voatahiry amin'ny singa DOM) |
getInstance |
Fomba static izay ahafahanao mahazo ny ohatra bokotra mifandray amin'ny singa DOM, azonao ampiasaina toy izao: bootstrap.Button.getInstance(element) . |
getOrCreateInstance |
Fomba static izay mamerina ohatra bokotra mifandray amin'ny singa DOM na mamorona vaovao raha toa ka tsy natomboka izany. Azonao ampiasaina toy izao: bootstrap.Button.getOrCreateInstance(element) . |
toggle |
Manova ny toetry ny fanosehana. Manome ny bokotra ny endrika fa efa navitrika. |
Ohatra, hamindra ny bokotra rehetra
document.querySelectorAll('.btn').forEach(buttonElement => {
const button = bootstrap.Button.getOrCreateInstance(buttonElement)
button.toggle()
})
CSS
hiovaova
Nampiana v5.2.0Ao anatin'ny fomba fiovaovan'ny CSS mivoatra an'ny Bootstrap, ny bokotra ankehitriny dia mampiasa ny fari-piadidiana CSS eo an -toerana .btn
ho an'ny fanatsarana ny fotoana tena izy. Ny soatoavina ho an'ny fari-piainan'ny CSS dia apetraka amin'ny alàlan'ny Sass, noho izany dia mbola tohanana ihany koa ny fanamboarana Sass.
--#{$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);
Ny .btn-*
kilasy modifier tsirairay dia manavao ny fari-piadidiana CSS mety mba hanamaivanana ny fitsipika CSS fanampiny miaraka amin'ny button-variant()
, button-outline-variant()
, ary button-size()
mixins.
Ity misy ohatra iray amin'ny fananganana .btn-*
kilasy modifier mahazatra toy ny ataontsika amin'ny bokotra tokana ho an'ny dokantsika amin'ny alàlan'ny famerenana ny fari-piadidiana CSS Bootstrap miaraka amin'ny fifangaroan'ny CSS sy Sass variables manokana.
.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%)};
}
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: 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%;
Sass mixins
Misy mixins telo ho an'ny bokotra: mixins variant outline ny bokotra (samy mifototra amin'ny $theme-colors
), miampy mixin habe bokotra.
@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
Ny variana bokotra (ho an'ny bokotra mahazatra sy tsipika) dia mampiasa ny fifangaroan'izy ireo miaraka amin'ny $theme-colors
sari-tany mba hamoronana ny kilasy modifier amin'ny 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);
}
}