બટનો
બહુવિધ કદ, સ્થિતિઓ અને વધુ માટે સમર્થન સાથે ફોર્મ્સ, સંવાદો અને વધુમાં ક્રિયાઓ માટે બુટસ્ટ્રેપની કસ્ટમ બટન શૈલીઓનો ઉપયોગ કરો.
ઉદાહરણો
બુટસ્ટ્રેપમાં ઘણી પૂર્વવ્યાખ્યાયિત બટન શૈલીઓનો સમાવેશ થાય છે, દરેક તેના પોતાના સિમેન્ટીક હેતુને સેવા આપે છે, જેમાં વધુ નિયંત્રણ માટે થોડા વધારાઓ મૂકવામાં આવે છે.
<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
વર્ગ s pointer-events: none
ની લિંક કાર્યક્ષમતાને અક્ષમ કરવાનો પ્રયાસ કરવા માટે ઉપયોગ કરે છે <a>
. નોંધ કરો કે આ CSS ગુણધર્મ હજુ સુધી HTML માટે પ્રમાણિત નથી, પરંતુ તમામ આધુનિક બ્રાઉઝર તેને સમર્થન આપે છે. વધુમાં, બ્રાઉઝર્સમાં પણ જે સપોર્ટ કરે છે pointer-events: none
, કીબોર્ડ નેવિગેશન અપ્રભાવિત રહે છે, મતલબ કે દેખાતા કીબોર્ડ વપરાશકર્તાઓ અને સહાયક તકનીકોના વપરાશકર્તાઓ હજી પણ આ લિંક્સને સક્રિય કરવામાં સક્ષમ હશે. તેથી સલામત રહેવા માટે, ઉપરાંત , કીબોર્ડ ફોકસ મેળવવાથી રોકવા માટે આ લિંક્સ પર aria-disabled="true"
એક વિશેષતા પણ શામેલ કરો અને તેમની કાર્યક્ષમતાને સંપૂર્ણ રીતે અક્ષમ કરવા માટે કસ્ટમ JavaScript નો ઉપયોગ કરો.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>
બ્લોક બટનો
અમારા ડિસ્પ્લે અને ગેપ યુટિલિટીઝના મિશ્રણ સાથે બુટસ્ટ્રેપ 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
ચલો
v5.2.0 માં ઉમેરાયેલબુટસ્ટ્રેપના વિકસતા CSS ચલોના અભિગમના ભાગરૂપે, બટનો હવે .btn
ઉન્નત રીઅલ-ટાઇમ કસ્ટમાઇઝેશન માટે સ્થાનિક CSS ચલોનો ઉપયોગ કરે છે. CSS ચલો માટેના મૂલ્યો Sass દ્વારા સેટ કરવામાં આવ્યા છે, તેથી 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);
દરેક સંશોધક વર્ગ અમારા , , અને મિક્સિન્સ .btn-*
સાથે વધારાના CSS નિયમોને ઘટાડવા માટે યોગ્ય CSS ચલોને અપડેટ કરે છે .button-variant()
button-outline-variant()
button-size()
.btn-*
અમારા પોતાના CSS અને Sass ચલોના મિશ્રણ સાથે બુટસ્ટ્રેપના CSS વેરિયેબલ્સને ફરીથી સોંપીને અમારા ડૉક્સ માટે અનન્ય બટનો માટે અમે કરીએ છીએ તેવો કસ્ટમ મોડિફાયર ક્લાસ બનાવવાનું અહીં ઉદાહરણ છે .
.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 ચલો
$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);
}
}