Wiesselt op den Haaptinhalt Wiesselt op d'Docs Navigatioun
in English

Dropdowns

Toggle kontextuell Iwwerlagerungen fir Lëschte vu Linken ze weisen a méi mam Bootstrap Dropdown Plugin.

Iwwersiicht

Dropdowns sinn togglebar, kontextuell Iwwerlagerungen fir Lëschte vu Linken ze weisen a méi. Si ginn interaktiv gemaach mam abegraff Bootstrap Dropdown JavaScript Plugin. Si ginn duerch Klick gekippt, net duerch Schweef; dëst ass eng virsiichteg Designdecisioun .

Dropdowns ginn op enger Drëtt Partei Bibliothéik gebaut, Popper , déi dynamesch Positionéierung an Viewport Detektioun ubitt. Gitt sécher datt Dir Popper.min.js virum Bootstrap's JavaScript enthält oder benotzt bootstrap.bundle.min.js/ bootstrap.bundle.jsdéi Popper enthält. Popper gëtt net benotzt fir Dropdowns an Navbars ze positionéieren awer well dynamesch Positionéierung net erfuerderlech ass.

Accessibilitéit

De WAI ARIA Standard definéiert en aktuellen role="menu"Widget , awer dëst ass spezifesch fir Applikatiounsähnlech Menüen déi Aktiounen oder Funktiounen ausléisen. ARIA Menue kënnen nëmmen Menü Elementer enthalen, Checkbox Menü Elementer, Radio Button Menü Elementer, Radio Button Gruppen, an Ënnermenüen.

Dem Bootstrap seng Dropdowns, op der anerer Säit, sinn entwéckelt fir generesch ze sinn an applicabel op eng Vielfalt vu Situatiounen a Markupstrukturen. Zum Beispill ass et méiglech Dropdowns ze kreéieren déi zousätzlech Inputen a Formkontrolle enthalen, sou wéi Sichfelder oder Loginformen. Aus dësem Grond erwaart Bootstrap keng vun den rolean aria-Attributer déi fir richteg ARIA Menüen erfuerderlech sinn (och net automatesch derbäi). Autoren mussen dës méi spezifesch Attributer selwer enthalen.

Wéi och ëmmer, Bootstrap füügt eng gebauter Ënnerstëtzung fir déi meescht Standard Tastaturmenü Interaktiounen, sou wéi d'Fäegkeet fir duerch eenzel .dropdown-itemElementer mat de Cursorschlësselen ze bewegen an de Menü mat dem ESCSchlëssel zouzemaachen.

Beispiller

Wickelt den Dropdown-Taggle (Äre Knäppchen oder Link) an den Dropdown-Menü bannent .dropdown, oder en anert Element dat deklaréiert position: relative;. Dropdowns kënnen aus <a>oder <button>Elementer ausgeléist ginn fir Är potenziell Bedierfnesser besser ze passen. D'Beispiller hei gewisen benotzen semantesch <ul>Elementer wou passend, awer personaliséiert Markup gëtt ënnerstëtzt.

Single Knäppchen

All Single .btnkann an e Dropdown Toggle ëmgewandelt ginn mat e puer Markup Ännerungen. Hei ass wéi Dir se mat entweder <button>Elementer setzen kënnt:

<div class="dropdown">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
    Dropdown button
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
    <li><a class="dropdown-item" href="#">Action</a></li>
    <li><a class="dropdown-item" href="#">Another action</a></li>
    <li><a class="dropdown-item" href="#">Something else here</a></li>
  </ul>
</div>

A mat <a>Elementer:

<div class="dropdown">
  <a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-bs-toggle="dropdown" aria-expanded="false">
    Dropdown link
  </a>

  <ul class="dropdown-menu" aria-labelledby="dropdownMenuLink">
    <li><a class="dropdown-item" href="#">Action</a></li>
    <li><a class="dropdown-item" href="#">Another action</a></li>
    <li><a class="dropdown-item" href="#">Something else here</a></li>
  </ul>
</div>

Dee beschten Deel ass datt Dir dëst och mat all Knäppchenvariant maache kënnt:

<!-- Example single danger button -->
<div class="btn-group">
  <button type="button" class="btn btn-danger dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
    Action
  </button>
  <ul class="dropdown-menu">
    <li><a class="dropdown-item" href="#">Action</a></li>
    <li><a class="dropdown-item" href="#">Another action</a></li>
    <li><a class="dropdown-item" href="#">Something else here</a></li>
    <li><hr class="dropdown-divider"></li>
    <li><a class="dropdown-item" href="#">Separated link</a></li>
  </ul>
</div>

Split Knäppchen

Ähnlech erstellt Splitknäppchen Dropdowns mat quasi déiselwecht Markup wéi Single Button Dropdowns, awer mat der Zousatz vu .dropdown-toggle-splitfir richteg Abstand ronderëm den Dropdown Caret.

Mir benotzen dës extra Klass fir d'horizontal paddingop béide Säiten vun der caret ze reduzéieren mat 25% an ewechzehuelen déi margin-leftfir regelméisseg Knäppchen dropdowns dobäi ass. Déi extra Ännerunge behalen de Caret am Spaltknäppchen zentréiert a liwweren e méi passend Gréissten Hitgebitt nieft dem Haaptknäppchen.

<!-- Example split danger button -->
<div class="btn-group">
  <button type="button" class="btn btn-danger">Action</button>
  <button type="button" class="btn btn-danger dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
    <span class="visually-hidden">Toggle Dropdown</span>
  </button>
  <ul class="dropdown-menu">
    <li><a class="dropdown-item" href="#">Action</a></li>
    <li><a class="dropdown-item" href="#">Another action</a></li>
    <li><a class="dropdown-item" href="#">Something else here</a></li>
    <li><hr class="dropdown-divider"></li>
    <li><a class="dropdown-item" href="#">Separated link</a></li>
  </ul>
</div>

Gréisst

Button Dropdowns funktionnéieren mat Knäppercher vun alle Gréissten, dorënner Standard a Split Dropdown Knäppercher.

<!-- Large button groups (default and split) -->
<div class="btn-group">
  <button class="btn btn-secondary btn-lg dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
    Large button
  </button>
  <ul class="dropdown-menu">
    ...
  </ul>
</div>
<div class="btn-group">
  <button class="btn btn-secondary btn-lg" type="button">
    Large split button
  </button>
  <button type="button" class="btn btn-lg btn-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
    <span class="visually-hidden">Toggle Dropdown</span>
  </button>
  <ul class="dropdown-menu">
    ...
  </ul>
</div>
<div class="btn-group">
  <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
    Small button
  </button>
  <ul class="dropdown-menu">
    ...
  </ul>
</div>
<div class="btn-group">
  <button class="btn btn-secondary btn-sm" type="button">
    Small split button
  </button>
  <button type="button" class="btn btn-sm btn-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
    <span class="visually-hidden">Toggle Dropdown</span>
  </button>
  <ul class="dropdown-menu">
    ...
  </ul>
</div>

Däischter Dropdowns

Wielt op méi däischter Dropdowns fir eng donkel Navbar oder personaliséierte Stil ze passen andeems Dir .dropdown-menu-darkop eng existent bäidréit .dropdown-menu. Keng Ännerunge fir den Dropdown-Element sinn erfuerderlech.

<div class="dropdown">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton2" data-bs-toggle="dropdown" aria-expanded="false">
    Dropdown button
  </button>
  <ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="dropdownMenuButton2">
    <li><a class="dropdown-item active" href="#">Action</a></li>
    <li><a class="dropdown-item" href="#">Another action</a></li>
    <li><a class="dropdown-item" href="#">Something else here</a></li>
    <li><hr class="dropdown-divider"></li>
    <li><a class="dropdown-item" href="#">Separated link</a></li>
  </ul>
</div>

A benotzt et an enger Navbar:

<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDarkDropdown" aria-controls="navbarNavDarkDropdown" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNavDarkDropdown">
      <ul class="navbar-nav">
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" id="navbarDarkDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
            Dropdown
          </a>
          <ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="navbarDarkDropdownMenuLink">
            <li><a class="dropdown-item" href="#">Action</a></li>
            <li><a class="dropdown-item" href="#">Another action</a></li>
            <li><a class="dropdown-item" href="#">Something else here</a></li>
          </ul>
        </li>
      </ul>
    </div>
  </div>
</nav>

Richtungen

RTL.lu

D'Direktioune gi gespigelt wann Dir Bootstrap an RTL benotzt, dat .dropstartheescht op der rietser Säit erschéngen.

Dropup

Ausléiser Dropdown-Menüen iwwer Elementer andeems Dir .dropupdem Elterendeel bäidréit.

<!-- Default dropup button -->
<div class="btn-group dropup">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
    Dropup
  </button>
  <ul class="dropdown-menu">
    <!-- Dropdown menu links -->
  </ul>
</div>

<!-- Split dropup button -->
<div class="btn-group dropup">
  <button type="button" class="btn btn-secondary">
    Split dropup
  </button>
  <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
    <span class="visually-hidden">Toggle Dropdown</span>
  </button>
  <ul class="dropdown-menu">
    <!-- Dropdown menu links -->
  </ul>
</div>

Dropright

Ausléiser Dropdown-Menüen op der rietser Säit vun den Elementer andeems Dir .dropendop den Elterendeel bäidréit.

<!-- Default dropend button -->
<div class="btn-group dropend">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
    Dropright
  </button>
  <ul class="dropdown-menu">
    <!-- Dropdown menu links -->
  </ul>
</div>

<!-- Split dropend button -->
<div class="btn-group dropend">
  <button type="button" class="btn btn-secondary">
    Split dropend
  </button>
  <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
    <span class="visually-hidden">Toggle Dropright</span>
  </button>
  <ul class="dropdown-menu">
    <!-- Dropdown menu links -->
  </ul>
</div>

Dropleft

Ausléiser Dropdown-Menüen op der lénker Säit vun den Elementer andeems Dir .dropstartdem Elterendeel bäidréit.

<!-- Default dropstart button -->
<div class="btn-group dropstart">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
    Dropstart
  </button>
  <ul class="dropdown-menu">
    <!-- Dropdown menu links -->
  </ul>
</div>

<!-- Split dropstart button -->
<div class="btn-group">
  <div class="btn-group dropstart" role="group">
    <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
      <span class="visually-hidden">Toggle Dropstart</span>
    </button>
    <ul class="dropdown-menu">
      <!-- Dropdown menu links -->
    </ul>
  </div>
  <button type="button" class="btn btn-secondary">
    Split dropstart
  </button>
</div>

Dir kënnt <a>oder <button>Elementer als Dropdown-Elementer benotzen.

<div class="dropdown">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu2" data-bs-toggle="dropdown" aria-expanded="false">
    Dropdown
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
    <li><button class="dropdown-item" type="button">Action</button></li>
    <li><button class="dropdown-item" type="button">Another action</button></li>
    <li><button class="dropdown-item" type="button">Something else here</button></li>
  </ul>
</div>

Dir kënnt och net-interaktiven Dropdown-Elementer mat .dropdown-item-text. Fillt Iech gratis weider ze styléieren mat personaliséierten CSS oder Text Utilities.

<ul class="dropdown-menu">
  <li><span class="dropdown-item-text">Dropdown item text</span></li>
  <li><a class="dropdown-item" href="#">Action</a></li>
  <li><a class="dropdown-item" href="#">Another action</a></li>
  <li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>

Aktiv

Füügt .activeArtikelen am Dropdown -Menü fir se als aktiv ze stiléieren . Fir den aktiven Zoustand un Hëllefstechnologien ze vermëttelen, benotzt den aria-currentAttribut - benotzt de pageWäert fir déi aktuell Säit, oder truefir den aktuellen Artikel an engem Set.

<ul class="dropdown-menu">
  <li><a class="dropdown-item" href="#">Regular link</a></li>
  <li><a class="dropdown-item active" href="#" aria-current="true">Active link</a></li>
  <li><a class="dropdown-item" href="#">Another link</a></li>
</ul>

Behënnert

Füügt .disabledun Artikelen am Dropdown fir se als behënnert ze stiléieren .

<ul class="dropdown-menu">
  <li><a class="dropdown-item" href="#">Regular link</a></li>
  <li><a class="dropdown-item disabled" href="#" tabindex="-1" aria-disabled="true">Disabled link</a></li>
  <li><a class="dropdown-item" href="#">Another link</a></li>
</ul>

Par défaut gëtt en Dropdown-Menü automatesch 100% vun uewen a laanscht déi lénks Säit vu sengem Elterendeel positionéiert. Dir kënnt dëst mat der Direktiounsklassen änneren .drop*, awer Dir kënnt se och mat zousätzleche Modifikatiounsklassen kontrolléieren.

Add .dropdown-menu-endto a .dropdown-menuto right align the dropdown menu. D'Direktioune gi gespigelt wann Dir Bootstrap an RTL benotzt, dat .dropdown-menu-endheescht op der lénker Säit erschéngen.

Kapp erop! Dropdowns si positionéiert dank Popper ausser wann se an enger Navbar enthale sinn.
<div class="btn-group">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
    Right-aligned menu example
  </button>
  <ul class="dropdown-menu dropdown-menu-end">
    <li><button class="dropdown-item" type="button">Action</button></li>
    <li><button class="dropdown-item" type="button">Another action</button></li>
    <li><button class="dropdown-item" type="button">Something else here</button></li>
  </ul>
</div>

Reaktiounsfäeger Ausriichtung

Wann Dir reaktiounsfäeger Ausriichtung benotze wëllt, deaktivéiert dynamesch Positionéierung andeems Dir den data-bs-display="static"Attribut bäidréit a benotzt déi reaktiounsfäeg Variatiounsklassen.

Fir den Dropdown-Menü richteg auszegläichen mat dem gegebene Breakpunkt oder méi grouss, füügt .dropdown-menu{-sm|-md|-lg|-xl|-xxl}-end.

<div class="btn-group">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" data-bs-display="static" aria-expanded="false">
    Left-aligned but right aligned when large screen
  </button>
  <ul class="dropdown-menu dropdown-menu-lg-end">
    <li><button class="dropdown-item" type="button">Action</button></li>
    <li><button class="dropdown-item" type="button">Another action</button></li>
    <li><button class="dropdown-item" type="button">Something else here</button></li>
  </ul>
</div>

Fir den Dropdown-Menü lénks mat dem gegebene Breakpunkt oder méi grouss auszegläichen, füügt .dropdown-menu-enda .dropdown-menu{-sm|-md|-lg|-xl|-xxl}-start.

<div class="btn-group">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" data-bs-display="static" aria-expanded="false">
    Right-aligned but left aligned when large screen
  </button>
  <ul class="dropdown-menu dropdown-menu-end dropdown-menu-lg-start">
    <li><button class="dropdown-item" type="button">Action</button></li>
    <li><button class="dropdown-item" type="button">Another action</button></li>
    <li><button class="dropdown-item" type="button">Something else here</button></li>
  </ul>
</div>

Bedenkt datt Dir net eng addéiere musstdata-bs-display="static" Attribut un Dropdown-Knäppercher an Navbars addéiere musst, well Popper net an Navbars benotzt gëtt.

Ausriichtung Optiounen

Huelt déi meescht vun den uewe gewisen Optiounen, hei ass eng kleng Kichen ënnerzegoen Demo vu verschiddenen Dropdown Ausriichtungsoptiounen op enger Plaz.

<div class="btn-group">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-expanded="false">
    Dropdown
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
  </ul>
</div>

<div class="btn-group">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
    Right-aligned menu
  </button>
  <ul class="dropdown-menu dropdown-menu-end">
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
  </ul>
</div>

<div class="btn-group">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" data-bs-display="static" aria-expanded="false">
    Left-aligned, right-aligned lg
  </button>
  <ul class="dropdown-menu dropdown-menu-lg-end">
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
  </ul>
</div>

<div class="btn-group">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" data-bs-display="static" aria-expanded="false">
    Right-aligned, left-aligned lg
  </button>
  <ul class="dropdown-menu dropdown-menu-end dropdown-menu-lg-start">
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
  </ul>
</div>

<div class="btn-group dropstart">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
    Dropstart
  </button>
  <ul class="dropdown-menu">
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
  </ul>
</div>

<div class="btn-group dropend">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
    Dropend
  </button>
  <ul class="dropdown-menu">
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
  </ul>
</div>

<div class="btn-group dropup">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
    Dropup
  </button>
  <ul class="dropdown-menu">
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
  </ul>
</div>

Header

Füügt en Header fir Sektiounen vun Aktiounen an all Dropdown-Menü ze markéieren.

<ul class="dropdown-menu">
  <li><h6 class="dropdown-header">Dropdown header</h6></li>
  <li><a class="dropdown-item" href="#">Action</a></li>
  <li><a class="dropdown-item" href="#">Another action</a></li>
</ul>

Dividers

Trennt Gruppe vu verwandte Menüartikele mat engem Trenndeel.

<ul class="dropdown-menu">
  <li><a class="dropdown-item" href="#">Action</a></li>
  <li><a class="dropdown-item" href="#">Another action</a></li>
  <li><a class="dropdown-item" href="#">Something else here</a></li>
  <li><hr class="dropdown-divider"></li>
  <li><a class="dropdown-item" href="#">Separated link</a></li>
</ul>

Text

Plaz all freeform Text an engem Dropdown-Menü mat Text a benotzt Abstands-Utilities . Bedenkt datt Dir wahrscheinlech zousätzlech Gréisststiler braucht fir d'Menübreet ze beschränken.

<div class="dropdown-menu p-4 text-muted" style="max-width: 200px;">
  <p>
    Some example text that's free-flowing within the dropdown menu.
  </p>
  <p class="mb-0">
    And this is more example text.
  </p>
</div>

Formen

Setzt e Formulaire an engem Dropdown-Menü, oder maacht et an en Dropdown-Menü, a benotzt Margin- oder Padding-Utilities fir et den negativen Raum ze ginn deen Dir braucht.

<div class="dropdown-menu">
  <form class="px-4 py-3">
    <div class="mb-3">
      <label for="exampleDropdownFormEmail1" class="form-label">Email address</label>
      <input type="email" class="form-control" id="exampleDropdownFormEmail1" placeholder="[email protected]">
    </div>
    <div class="mb-3">
      <label for="exampleDropdownFormPassword1" class="form-label">Password</label>
      <input type="password" class="form-control" id="exampleDropdownFormPassword1" placeholder="Password">
    </div>
    <div class="mb-3">
      <div class="form-check">
        <input type="checkbox" class="form-check-input" id="dropdownCheck">
        <label class="form-check-label" for="dropdownCheck">
          Remember me
        </label>
      </div>
    </div>
    <button type="submit" class="btn btn-primary">Sign in</button>
  </form>
  <div class="dropdown-divider"></div>
  <a class="dropdown-item" href="#">New around here? Sign up</a>
  <a class="dropdown-item" href="#">Forgot password?</a>
</div>
<form class="dropdown-menu p-4">
  <div class="mb-3">
    <label for="exampleDropdownFormEmail2" class="form-label">Email address</label>
    <input type="email" class="form-control" id="exampleDropdownFormEmail2" placeholder="[email protected]">
  </div>
  <div class="mb-3">
    <label for="exampleDropdownFormPassword2" class="form-label">Password</label>
    <input type="password" class="form-control" id="exampleDropdownFormPassword2" placeholder="Password">
  </div>
  <div class="mb-3">
    <div class="form-check">
      <input type="checkbox" class="form-check-input" id="dropdownCheck2">
      <label class="form-check-label" for="dropdownCheck2">
        Remember me
      </label>
    </div>
  </div>
  <button type="submit" class="btn btn-primary">Sign in</button>
</form>

Benotzt data-bs-offsetoder data-bs-referencefir d'Plaz vum Dropdown ze änneren.

<div class="d-flex">
  <div class="dropdown me-1">
    <button type="button" class="btn btn-secondary dropdown-toggle" id="dropdownMenuOffset" data-bs-toggle="dropdown" aria-expanded="false" data-bs-offset="10,20">
      Offset
    </button>
    <ul class="dropdown-menu" aria-labelledby="dropdownMenuOffset">
      <li><a class="dropdown-item" href="#">Action</a></li>
      <li><a class="dropdown-item" href="#">Another action</a></li>
      <li><a class="dropdown-item" href="#">Something else here</a></li>
    </ul>
  </div>
  <div class="btn-group">
    <button type="button" class="btn btn-secondary">Reference</button>
    <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" id="dropdownMenuReference" data-bs-toggle="dropdown" aria-expanded="false" data-bs-reference="parent">
      <span class="visually-hidden">Toggle Dropdown</span>
    </button>
    <ul class="dropdown-menu" aria-labelledby="dropdownMenuReference">
      <li><a class="dropdown-item" href="#">Action</a></li>
      <li><a class="dropdown-item" href="#">Another action</a></li>
      <li><a class="dropdown-item" href="#">Something else here</a></li>
      <li><hr class="dropdown-divider"></li>
      <li><a class="dropdown-item" href="#">Separated link</a></li>
    </ul>
  </div>
</div>

Auto zoumaachen Verhalen

Par défaut ass den Dropdown-Menü zougemaach wann Dir bannen oder ausserhalb vum Dropdown-Menü klickt. Dir kënnt d' autoCloseOptioun benotzen fir dëst Verhalen vum Dropdown ze änneren.

<div class="btn-group">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="defaultDropdown" data-bs-toggle="dropdown" data-bs-auto-close="true" aria-expanded="false">
    Default dropdown
  </button>
  <ul class="dropdown-menu" aria-labelledby="defaultDropdown">
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
  </ul>
</div>

<div class="btn-group">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuClickableOutside" data-bs-toggle="dropdown" data-bs-auto-close="inside" aria-expanded="false">
    Clickable outside
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenuClickableOutside">
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
  </ul>
</div>

<div class="btn-group">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuClickableInside" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
    Clickable inside
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenuClickableInside">
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
  </ul>
</div>

<div class="btn-group">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuClickable" data-bs-toggle="dropdown" data-bs-auto-close="false" aria-expanded="false">
    Manual close
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenuClickable">
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
    <li><a class="dropdown-item" href="#">Menu item</a></li>
  </ul>
</div>

Sass

Variablen

Variablen fir all Dropdowns:

$dropdown-min-width:                10rem;
$dropdown-padding-x:                0;
$dropdown-padding-y:                .5rem;
$dropdown-spacer:                   .125rem;
$dropdown-font-size:                $font-size-base;
$dropdown-color:                    $body-color;
$dropdown-bg:                       $white;
$dropdown-border-color:             rgba($black, .15);
$dropdown-border-radius:            $border-radius;
$dropdown-border-width:             $border-width;
$dropdown-inner-border-radius:      subtract($dropdown-border-radius, $dropdown-border-width);
$dropdown-divider-bg:               $dropdown-border-color;
$dropdown-divider-margin-y:         $spacer * .5;
$dropdown-box-shadow:               $box-shadow;

$dropdown-link-color:               $gray-900;
$dropdown-link-hover-color:         shade-color($gray-900, 10%);
$dropdown-link-hover-bg:            $gray-200;

$dropdown-link-active-color:        $component-active-color;
$dropdown-link-active-bg:           $component-active-bg;

$dropdown-link-disabled-color:      $gray-500;

$dropdown-item-padding-y:           $spacer * .25;
$dropdown-item-padding-x:           $spacer;

$dropdown-header-color:             $gray-600;
$dropdown-header-padding:           $dropdown-padding-y $dropdown-item-padding-x;

Variablen fir den donkelen Dropdown :

$dropdown-dark-color:               $gray-300;
$dropdown-dark-bg:                  $gray-800;
$dropdown-dark-border-color:        $dropdown-border-color;
$dropdown-dark-divider-bg:          $dropdown-divider-bg;
$dropdown-dark-box-shadow:          null;
$dropdown-dark-link-color:          $dropdown-dark-color;
$dropdown-dark-link-hover-color:    $white;
$dropdown-dark-link-hover-bg:       rgba($white, .15);
$dropdown-dark-link-active-color:   $dropdown-link-active-color;
$dropdown-dark-link-active-bg:      $dropdown-link-active-bg;
$dropdown-dark-link-disabled-color: $gray-500;
$dropdown-dark-header-color:        $gray-500;

Variablen fir d'CSS-baséiert Carets déi d'Interaktivitéit vun engem Dropdown uginn:

$caret-width:                 .3em;
$caret-vertical-align:        $caret-width * .85;
$caret-spacing:               $caret-width * .85;

Mixins

Mixins gi benotzt fir d'CSS-baséiert Carets ze generéieren a kënnen an scss/mixins/_caret.scss.

@mixin caret-down {
  border-top: $caret-width solid;
  border-right: $caret-width solid transparent;
  border-bottom: 0;
  border-left: $caret-width solid transparent;
}

@mixin caret-up {
  border-top: 0;
  border-right: $caret-width solid transparent;
  border-bottom: $caret-width solid;
  border-left: $caret-width solid transparent;
}

@mixin caret-end {
  border-top: $caret-width solid transparent;
  border-right: 0;
  border-bottom: $caret-width solid transparent;
  border-left: $caret-width solid;
}

@mixin caret-start {
  border-top: $caret-width solid transparent;
  border-right: $caret-width solid;
  border-bottom: $caret-width solid transparent;
}

@mixin caret($direction: down) {
  @if $enable-caret {
    &::after {
      display: inline-block;
      margin-left: $caret-spacing;
      vertical-align: $caret-vertical-align;
      content: "";
      @if $direction == down {
        @include caret-down();
      } @else if $direction == up {
        @include caret-up();
      } @else if $direction == end {
        @include caret-end();
      }
    }

    @if $direction == start {
      &::after {
        display: none;
      }

      &::before {
        display: inline-block;
        margin-right: $caret-spacing;
        vertical-align: $caret-vertical-align;
        content: "";
        @include caret-start();
      }
    }

    &:empty::after {
      margin-left: 0;
    }
  }
}

Benotzung

Iwwer Dateattributer oder JavaScript wiesselt den Dropdown-Plugin verstoppt Inhalt (Dropdown-Menüen) andeems d' .showKlass op den Elterendeel wiesselt .dropdown-menu. D' data-bs-toggle="dropdown"Attributer gëtt ugewisen fir Dropdown-Menüen op engem Applikatiounsniveau zouzemaachen, also ass et eng gutt Iddi et ëmmer ze benotzen.

Op Touch-aktivéierten Apparater, d'Ouverture vun engem Dropdown füügt eidel mouseoverHandler un déi direkt Kanner vum <body>Element. Dësen zouginn ellent Hack ass néideg fir ëm e Quirk an der iOS Event Delegatioun ze schaffen , wat soss verhënnert datt e Krunn iergendwou ausserhalb vum Dropdown de Code ausléist deen den Dropdown zoumaacht. Wann den Dropdown zougemaach ass, ginn dës zousätzlech eidel mouseoverHandler geläscht.

Via daten Attributer

Füügt data-bs-toggle="dropdown"e Link oder Knäppchen fir en Dropdown ze wiesselen.

<div class="dropdown">
  <button id="dLabel" type="button" data-bs-toggle="dropdown" aria-expanded="false">
    Dropdown trigger
  </button>
  <ul class="dropdown-menu" aria-labelledby="dLabel">
    ...
  </ul>
</div>

Iwwer JavaScript

Rufft d'Dropdowns iwwer JavaScript un:

var dropdownElementList = [].slice.call(document.querySelectorAll('.dropdown-toggle'))
var dropdownList = dropdownElementList.map(function (dropdownToggleEl) {
  return new bootstrap.Dropdown(dropdownToggleEl)
})
data-bs-toggle="dropdown"nach néideg

Egal ob Dir Ären Dropdown iwwer JavaScript nennt oder amplaz den Data-APi benotzt, data-bs-toggle="dropdown"ass ëmmer erfuerderlech um Ausléiserelement vum Dropdown präsent ze sinn.

Optiounen

Optiounen kënnen iwwer Datenattributer oder JavaScript weidergeleet ginn. Fir Datenattributer, fügen d'Optiounsnumm un data-bs-, wéi an data-bs-offset="". Vergewëssert Iech de Falltyp vun der Optiounsnumm vun CamelCase op Kebab-Case z'änneren wann Dir d'Optiounen iwwer Datenattributer passéiert. Zum Beispill, amplaz ze benotzen data-bs-autoClose="false", benotzt data-bs-auto-close="false".

Numm Typ Default Beschreiwung
boundary streng | element 'clippingParents' Overflow Constraint Grenz vum Dropdown-Menü (gëllt nëmme fir Popper's preventOverflow-Modifier). Par défaut ass et 'clippingParents'a kann eng HTMLElement Referenz akzeptéieren (nëmmen iwwer JavaScript). Fir méi Informatioun kuckt op Popper's detectOverflow docs .
reference streng | Element | Objet 'toggle' Referenzelement vum Dropdown-Menü. Akzeptéiert d'Wäerter vun 'toggle', 'parent', eng HTMLElement Referenz oder en Objet deen getBoundingClientRect. Fir méi Informatioun, kuckt op Popper's Konstruktordokumenter a virtuell Elementdokumenter .
display String 'dynamic' Par défaut benotze mir Popper fir dynamesch Positionéierung. Desaktivéiere dëst mat static.
offset array | streng | Funktioun [0, 2]

Offset vum Dropdown relativ zu sengem Zil. Dir kënnt eng String an Datenattributer mat komma getrennte Wäerter passéieren wéi:data-bs-offset="10,20"

Wann eng Funktioun benotzt gëtt fir d'Offset ze bestëmmen, gëtt se mat engem Objet genannt deen d'Popperplazéierung enthält, d'Referenz, a Popper-Rects als éischt Argument. Den Ausléiserelement DOM Node gëtt als zweet Argument weidergeleet. D'Funktioun muss en Array mat zwou Zuelen zréckginn:[skidding, distance] :.

Fir méi Informatioun kuckt op dem Popper seng Offset Docs .

autoClose boolesch | String true

Konfiguréiert den Auto Zoumaache Verhalen vum Dropdown:

  • true- den Dropdown gëtt zougemaach andeems Dir dobaussen oder am Dropdown-Menü klickt.
  • false- den Dropdown gëtt zougemaach andeems Dir op den Toggle Knäppchen klickt a manuell rufft hideoder toggleMethod. (Och net zougemaach ginn andeems Dir op escde Schlëssel dréckt)
  • 'inside'- den Dropdown gëtt zougemaach (nëmmen) andeems Dir am Dropdown-Menü klickt.
  • 'outside'- den Dropdown gëtt zougemaach (nëmmen) andeems Dir ausserhalb vum Dropdown-Menü klickt.
popperConfig null | Objet | Funktioun null

Fir d'Standard Popper Configuratioun vum Bootstrap z'änneren, kuckt d' Popper Konfiguratioun .

Wann eng Funktioun benotzt gëtt fir d'Popper Konfiguratioun ze kreéieren, gëtt se mat engem Objet genannt deen d'Standard Popper Konfiguratioun vum Bootstrap enthält. Et hëlleft Iech de Standard mat Ärer eegener Konfiguratioun ze benotzen an ze fusionéieren. D'Funktioun muss e Configuratiounsobjekt fir Popper zréckginn.

Benotzt Funktioun matpopperConfig

var dropdown = new bootstrap.Dropdown(element, {
  popperConfig: function (defaultBsPopperConfig) {
    // var newPopperConfig = {...}
    // use defaultBsPopperConfig if needed...
    // return newPopperConfig
  }
})

Methoden

Method Beschreiwung
toggle Wiesselt den Dropdown-Menü vun enger bestëmmter Navbar oder Tabbed Navigatioun.
show Weist den Dropdown-Menü vun enger bestëmmter Navbar oder Tabbed Navigatioun.
hide Verstoppt den Dropdown-Menü vun enger bestëmmter Navbar oder Tabbed Navigatioun.
update Aktualiséiert d'Positioun vun engem Element dropdown.
dispose Zerstéiert den Dropdown vun engem Element. (läscht gespäichert Daten am DOM Element)
getInstance Statesch Method déi Iech erlaabt d'Dropdown-Instanz mat engem DOM Element assoziéiert ze kréien, Dir kënnt et esou benotzen:bootstrap.Dropdown.getInstance(element)
getOrCreateInstance Statesch Method déi eng Dropdown Instanz zréckginn, déi mat engem DOM Element assoziéiert ass oder en neit erstellt am Fall wou se net initialiséiert gouf. Dir kënnt et esou benotzen:bootstrap.Dropdown.getOrCreateInstance(element)

Evenementer

All Dropdown-Evenementer ginn op d'Toggling-Element gebrannt an dann opgeblosen. Also kënnt Dir och Eventnolauschterer am .dropdown-menuElterendeel addéieren. hide.bs.dropdownan hidden.bs.dropdownEvenementer hunn eng clickEventPropriétéit (nëmmen wann d'Original Event Typ ass click) déi enthält en Event Objet fir de Klick Event.

Method Beschreiwung
show.bs.dropdown Feier direkt wann d'Show Instanz Method genannt gëtt.
shown.bs.dropdown Entlooss wann den Dropdown fir de Benotzer siichtbar gemaach gouf an d'CSS Transitioune fäerdeg sinn.
hide.bs.dropdown Brennt direkt wann d'Hide Instanz Method genannt gouf.
hidden.bs.dropdown Entlooss wann den Dropdown fäerdeg ass vum Benotzer verstoppt ze sinn an CSS Iwwergänge fäerdeg sinn.
var myDropdown = document.getElementById('myDropdown')
myDropdown.addEventListener('show.bs.dropdown', function () {
  // do something...
})