在v5升级之前,我在一个带有可变长度菜单项的下拉列表中使用了data-boundary=“window”,但是,假设data-bs-boundary是一个新的属性,这个方法不再起作用了。
下拉列表在页面上右对齐,因此,比选定项长的下拉项会被窗口边缘截断。
我还使用了迁移文档中提到的data-bs-popper属性,但没有效果。
这在4.6中运行良好。
根据请求更新,下面是一些代码(这是从浏览器呈现的标记)
<div id="CampaignSelector" class="nav-item dropdown" data-bs-boundary="body">
<button id="btnCampaignSelector" class="btn btn-primary text-uppercase dropdown-toggle" type="button" data-bs-toggle="dropdown">
Macray's Keep Lobby
</button>
<div id="ddCampaignSelector" class="dropdown-menu" aria-labelledby="ddCampaignSelector">
<div class="dropdown-item d-flex justify-content-between _campaign" data-campaign-id="00000000-0000-0000-0000-000000000000">
<span>Macray's Keep Lobby</span>
</div>
<div class="dropdown-item d-flex justify-content-between _campaign" data-campaign-id="fba19b32-46f0-4650-b260-a0079a907c28">
<span>Reign of Tiamat: Maquis of Westgate</span>
</div>
<div class="dropdown-item d-flex justify-content-between _campaign" data-campaign-id="2f87a37d-a387-41ec-87f7-ccf9004f4f6e">
<span>A Dark & Stormy Knight</span>
</div>
<div class="dropdown-item d-flex justify-content-between _campaign" data-campaign-id="0a5a8db5-617b-4797-ab41-eba75bd9ffea">
<span>The Forgotten</span>
<span class="badge badge-primary _unread-count"><i class="fas fa-fw fa-envelope" aria-hidden="true"></i>1</span>
</div>
</div></div>
还有这个如果它对你更有效的话。
https://jsfiddle.net/q78n9p4v/
3条答案
按热度按时间9lowa7mx1#
只需将
position-static
类添加到dropdown
容器中。vtwuwzda2#
Popper 2.×使用JavaScript的Document方法
querySelector()
设置“检查元素溢出的区域”。不要将
window
指派给data-bs-boundary
,而是尝试将选取器(例如类型选取器body
或html
)指派给它:5ssjco0h3#
data-bs-boundary="body"
data-bs-boundary="html"
data-bs-boundary="window"
data-bs-boundary="videport"
据我测试,这些都不起作用。
选项1
将
postion-static
类添加到下拉容器中可以正常工作,但是当父容器需要位置relative
或absolute
时,可能会再次出现问题。所以,我更喜欢的方法是在下拉菜单显示如下时添加
position-static
类。Codepen Demo
选项2
这里有另一个使用popper js的
strategy: "fixed"
的解决方案。这个解决方案的缺点是-如果下拉菜单到达了视口的角落,并且总是显示在底部(没有翻转)。它将隐藏在视口中,如下所示。