Тамчы
Bootstrap тамчы плагины белән сылтамалар исемлеген күрсәтү өчен контекстуаль каплауларны алыштырыгыз.
Гомуми күзәтү
Тамчы төшү - күчерелмә, сылтамалар исемлеген күрсәтү өчен контекстуаль өстәмәләр. Алар Bootstrap тамчысы JavaScript плагины белән интерактив ясалган. Алар басу белән алыштырыла, каушап түгел; бу белә торып проектлау карары .
Тамчы төшү динамик позицияләү һәм күренешне ачыклауны тәэмин итүче Popper өченче як китапханәсендә төзелгән . Bootstrap'ның JavaScript алдыннан popper.min.js кертегез яки Popper булганbootstrap.bundle.min.js
/ кулланыгыз bootstrap.bundle.js
. Поппер диңгез такталарында тамчыларны урнаштыру өчен кулланылмый, чөнки динамик позицияләү таләп ителми.
Уңайлык
WAI ARIA стандарты фактик role="menu"
виджетны билгели , ләкин бу гамәлләргә яки функцияләргә этәрүче кушымтага охшаган менюларга хас. ARIA менюларында меню элементлары, меню пунктлары, радио төймә меню элементлары, радио төймә төркемнәре һәм суб-менюлар булырга мөмкин.
Ботстрапның төшүе, гомуми һәм төрле ситуацияләргә һәм билгеләр структураларына куллану өчен эшләнгән. Мәсәлән, эзләү кырлары яки логин формалары кебек өстәмә керемнәр һәм форма контроле булган тамчыларны ясарга мөмкин. Шуңа күрә, Bootstrap чын ARIA менюлары өчен кирәк булган role
һәм aria-
атрибутларны көтми (яки автоматик рәвештә кушмый) . Авторларга бу конкрет атрибутларны кертергә туры киләчәк.
.dropdown-item
Ләкин, Bootstrap күпчелек стандарт клавиатура менюлары өчен урнаштырылган ярдәм өсти, мәсәлән , курсор ачкычларын кулланып аерым элементлар аша күчү һәм менюны ачкыч белән ябу ESC.
Мисаллар
Ачылучының күчү (төймә яки сылтама) һәм тамчы менюны .dropdown
, яки игълан иткән бүтән элементны урыгыз position: relative;
. Сезнең потенциаль ихтыяҗларыгызга яхшырак туры килер өчен тамчылар <a>
яисә элементлардан башланырга мөмкин . <button>
Монда күрсәтелгән мисаллар семантик <ul>
элементларны кирәк булганда кулланалар, ләкин махсус билгеләнү ярдәм итә.
Бер төймә
Кайбер теләсә нинди .btn
үзгәрешләр белән тамчыга күчү мөмкин. Менә сез аларны ике <button>
элемент белән эшләргә ничек куя аласыз:
<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>
Elementәм <a>
элементлар белән:
<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>
Иң яхшысы - сез моны теләсә нинди төймә варианты белән эшли аласыз:
<!-- 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>
Бөлү төймәсе
Нәкъ шулай ук, бер төймә тамчылары белән бер үк марка белән бүленгән төймә тамчыларын булдырыгыз, ләкин .dropdown-toggle-split
тамчы карет тирәсендә дөрес аралар өстәп.
Без бу өстәмә классны padding
каретның ике ягында горизонтальне 25% киметү өчен кулланабыз һәм margin-left
регуляр төймә төшү өчен өстәлгәнне бетерәбез. Бу өстәмә үзгәрешләр каретны бүлү төймәсенә туплыйлар һәм төп төймә янындагы урынлы зурлыктагы мәйданны тәэмин итәләр.
<!-- 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>
Зурлык
Кнопка тамчылары барлык зурлыктагы төймәләр белән эшли, шул исәптән килешү һәм бүленгән төшү төймәләре.
<!-- 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>
Караңгы төшү
.dropdown-menu-dark
Караңгы диңгез тактасына яки булган стильгә туры килер өчен, караңгы тамчыларга керегез .dropdown-menu
. Ачылучы әйберләргә бернинди үзгәрешләр дә кирәк түгел.
<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>
Navәм аны диңгез тактасында куллану:
<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>
Ectionsнәлеш
РТЛ
Ротлда Bootstrap кулланганда юнәлешләр чагылдырылган, ягъни .dropstart
уң якта күренәчәк.
Тамчы
.dropup
Ата-аналар элементына өстәп тамчы менюларны элементлар өстендә эшләгез .
<!-- 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>
Тамчы
.dropend
Ата-аналар элементын өстәп элементларның уң ягында тамчы менюларны триггер .
<!-- 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>
Тамчы
.dropstart
Ата-аналар элементын өстәп элементларның сул ягында тамчы менюларны триггер .
<!-- 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>
Меню әйберләре
Сез <a>
яисә <button>
элементларны тамчы әйберләр итеп куллана аласыз.
<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>
Сез шулай ук интерактив булмаган тамчы әйберләр ясый аласыз .dropdown-item-text
. Алга таба махсус CSS яки текст ярдәмендә стиль ясарга ирек бирегез.
<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>
Актив
Аларны актив итеп.active
стильләштерү өчен тамчы әйберләргә өстәгез . Актив халәтне ярдәмче технологияләргә җиткерү өчен, атрибутны кулланыгыз - хәзерге бит өчен, яки комплекттагы агымдагы әйбер өчен.aria-current
page
true
<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>
Инвалид
Аларны инвалид итеп.disabled
стильләштерү өчен тамчы әйберләргә өстәгез .
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Regular link</a></li>
<li><a class="dropdown-item disabled">Disabled link</a></li>
<li><a class="dropdown-item" href="#">Another link</a></li>
</ul>
Меню тигезләү
Килешү буенча, тамчы меню автоматик рәвештә 100% өстән һәм ата-анасының сул ягына урнаштырыла. Сез моны юнәлеш .drop*
класслары белән үзгәртә аласыз, ләкин сез аларны өстәмә үзгәртүче класслар белән контрольдә тота аласыз.
Ачылучы менюны уңга тигезләү өчен .dropdown-menu-end
өстәгез . .dropdown-menu
RTL'да Bootstrap кулланганда юнәлешләр чагылдырылган, ягъни .dropdown-menu-end
сул якта күренәчәк.
<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>
Onsаваплы тигезләү
Әгәр дә сез җаваплы тигезләү кулланырга телисез икән, data-bs-display="static"
атрибутны өстәп динамик позицияне сүндерегез һәм җаваплы вариация классларын кулланыгыз.
Тамчы менюсын бирелгән нокта яки зуррак белән тигезләү өчен, өстәгез .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>
Ачылган менюны бирелгән нокта яки зуррак белән тигезләү өчен, өстәгез .dropdown-menu-end
һәм .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>
Игътибар итегез, data-bs-display="static"
диңгез такталарында төшү төймәләренә атрибут өстәргә кирәк түгел, чөнки Поппер диңгез такталарында кулланылмый.
Тигезләү вариантлары
Aboveгарыда күрсәтелгән вариантларның күбесен алып, монда бер кухняда төрле тамчы тигезләү вариантларының кечкенә кухня чокыры демо.
<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>
Меню эчтәлеге
Башлыклар
Теләсә нинди тамчы менюда эш бүлекләрен билгеләргә башлам өстәгез.
<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>
Бүләкләүчеләр
Бәйләнешле меню әйберләренең төркемнәрен бүлүче белән аерыгыз.
<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 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>
Формалар
Форманы тамчы менюга куегыз, яисә тамчы менюга кертегез, һәм сез кирәк булган тискәре урынны бирү өчен маржа яки паддер ярдәмендә кулланыгыз.
<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>
Ачылу вариантлары
Тамчы урынын кулланыгыз data-bs-offset
яки data-bs-reference
үзгәртегез.
<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>
Авто ябык тәртип
Килешү буенча, тамчы меню эчкә яки тышка чыккач ябыла. Сез autoClose
тамчы тәртибен үзгәртү вариантын куллана аласыз.
<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>
Сасс
Variзгәрешләр
Барлык тамчылар өчен үзгәрешләр:
$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($dropdown-link-color, 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;
Караңгы төшү өчен үзгәрешләр :
$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;
Тамчы интерактивлыгын күрсәтүче CSS нигезендәге каретлар өчен үзгәрешләр:
$caret-width: .3em;
$caret-vertical-align: $caret-width * .85;
$caret-spacing: $caret-width * .85;
Миксинс
Миксиннар CSS нигезендәге каретлар ясау өчен кулланыла һәм аларны табып була 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;
}
}
}
Куллану
.show
Мәгълүмат атрибутлары яки JavaScript аша, тамчы плагин яшерен эчтәлекне (тамчы менюларны) ата-анага күчереп алыштыра .dropdown-menu
. Атрибут кушымта дәрәҗәсендә тамчы менюларны ябу өчен data-bs-toggle="dropdown"
таяна, шуңа күрә аны һәрвакыт куллану яхшы идея.
mouseover
якын балаларына буш эшкәртүчеләр
өсти. <body>
Бу ямьсез хак
, iOS вакыйгалар делегациясендә чуалыш өстендә эшләргә кирәк , бу тамчы тамчы ябылган кодны эшләтеп җибәрүдән саклый. Тамчы ябылганнан соң, бу өстәмә буш
mouseover
эшкәртүчеләр бетерелә.
Мәгълүмат атрибутлары аша
Ачылуны data-bs-toggle="dropdown"
алыштыру өчен сылтамага яки төймәгә өстәгез.
<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>
JavaScript аша
JavaScript аша тамчыларга шалтыратыгыз:
var dropdownElementList = [].slice.call(document.querySelectorAll('.dropdown-toggle'))
var dropdownList = dropdownElementList.map(function (dropdownToggleEl) {
return new bootstrap.Dropdown(dropdownToggleEl)
})
data-bs-toggle="dropdown"
һаман кирәк
JavaScript аша тамчыгызга шалтыратасызмы, яисә мәгълүмат-api кулланасызмы, data-bs-toggle="dropdown"
тамчы триггер элементында һәрвакыт булырга тиеш.
Вариантлар
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-bs-
, as in data-bs-offset=""
. Make sure to change the case type of the option name from camelCase to kebab-case when passing the options via data attributes. For example, instead of using data-bs-autoClose="false"
, use data-bs-auto-close="false"
.
Name | Type | Default | Description |
---|---|---|---|
boundary |
string | element | 'clippingParents' |
Overflow constraint boundary of the dropdown menu (applies only to Popper's preventOverflow modifier). By default it's 'clippingParents' and can accept an HTMLElement reference (via JavaScript only). For more information refer to Popper's detectOverflow docs. |
reference |
string | element | object | 'toggle' |
Reference element of the dropdown menu. Accepts the values of 'toggle' , 'parent' , an HTMLElement reference or an object providing getBoundingClientRect . For more information refer to Popper's constructor docs and virtual element docs. |
display |
string | 'dynamic' |
By default, we use Popper for dynamic positioning. Disable this with static . |
offset |
array | string | function | [0, 2] |
Offset of the dropdown relative to its target. You can pass a string in data attributes with comma separated values like: When a function is used to determine the offset, it is called with an object containing the popper placement, the reference, and popper rects as its first argument. The triggering element DOM node is passed as the second argument. The function must return an array with two numbers: For more information refer to Popper's offset docs. |
autoClose |
boolean | string | true |
Configure the auto close behavior of the dropdown:
|
popperConfig |
null | object | function | null |
To change Bootstrap's default Popper config, see Popper's configuration. When a function is used to create the Popper configuration, it's called with an object that contains the Bootstrap's default Popper configuration. It helps you use and merge the default with your own configuration. The function must return a configuration object for Popper. |
Using function with popperConfig
var dropdown = new bootstrap.Dropdown(element, {
popperConfig: function (defaultBsPopperConfig) {
// var newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Methods
Method | Description |
---|---|
toggle |
Toggles the dropdown menu of a given navbar or tabbed navigation. |
show |
Shows the dropdown menu of a given navbar or tabbed navigation. |
hide |
Hides the dropdown menu of a given navbar or tabbed navigation. |
update |
Updates the position of an element's dropdown. |
dispose |
Destroys an element's dropdown. (Removes stored data on the DOM element) |
getInstance |
Static method which allows you to get the dropdown instance associated to a DOM element, you can use it like this: bootstrap.Dropdown.getInstance(element) |
getOrCreateInstance |
Static method which returns a dropdown instance associated to a DOM element or create a new one in case it wasn't initialized. You can use it like this: bootstrap.Dropdown.getOrCreateInstance(element) |
Events
All dropdown events are fired at the toggling element and then bubbled up. So you can also add event listeners on the .dropdown-menu
’s parent element. hide.bs.dropdown
and hidden.bs.dropdown
events have a clickEvent
property (only when the original Event type is click
) that contains an Event Object for the click event.
Method | Description |
---|---|
show.bs.dropdown |
Fires immediately when the show instance method is called. |
shown.bs.dropdown |
Fired when the dropdown has been made visible to the user and CSS transitions have completed. |
hide.bs.dropdown |
Fires immediately when the hide instance method has been called. |
hidden.bs.dropdown |
Fired when the dropdown has finished being hidden from the user and CSS transitions have completed. |
var myDropdown = document.getElementById('myDropdown')
myDropdown.addEventListener('show.bs.dropdown', function () {
// do something...
})