አዝራሮች
ለብዙ መጠኖች፣ ግዛቶች እና ሌሎችም ላሉ ድርጊቶች የ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
ክፍሉን ወደ አዝራሩ ማከል ይችላሉ። $btn-white-space: nowrap
በ Sass ውስጥ ለእያንዳንዱ አዝራር የጽሑፍ መጠቅለያን ለማሰናከል ማዘጋጀት ይችላሉ።
የአዝራር መለያዎች
.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>
ይህ የሲኤስኤስ ንብረት ለኤችቲኤምኤል ገና ደረጃውን ያልጠበቀ መሆኑን ልብ ይበሉ፣ ግን ሁሉም ዘመናዊ አሳሾች ይደግፋሉ። በተጨማሪም፣ በሚደግፉ አሳሾች ውስጥ እንኳን pointer-events: none
፣ የቁልፍ ሰሌዳ አሰሳ ሳይነካ ይቀራል፣ ይህም ማለት ማየት የተሳናቸው የቁልፍ ሰሌዳ ተጠቃሚዎች እና አጋዥ ቴክኖሎጂ ተጠቃሚዎች አሁንም እነዚህን አገናኞች ማግበር ይችላሉ። ስለዚህ ለደህንነት ሲባል aria-disabled="true"
፣ በተጨማሪም፣ በእነዚህ ማገናኛዎች ላይ የኪቦርድ ትኩረትን እንዳይቀበሉ ለመከላከል ባህሪን ያካትቱ 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 ውስጥ ተጨምሯልእንደ የ Bootstrap የ 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 ተለዋዋጮችን ያዘምናል ።button-variant()
button-outline-variant()
button-size()
.btn-*
የ Bootstrap CSS ተለዋዋጮችን ከራሳችን CSS እና Sass ተለዋዋጮች ጋር በመመደብ ለሰነዶቻችን ልዩ ለሆኑ አዝራሮች እንደምናደርገው ብጁ ማሻሻያ ክፍል የመገንባት ምሳሌ እዚህ አለ ።
.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};
}
Sass loops
$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);
}
}