表中的 Bootstrap 4 下拉菜单

Posted

技术标签:

【中文标题】表中的 Bootstrap 4 下拉菜单【英文标题】:Bootstrap 4 drop-down menu in table 【发布时间】:2018-08-27 01:20:58 【问题描述】:

我在使用下拉菜单(引导程序 4)时遇到了一些问题。所以我有一张桌子:

当我点击第一行的设置时,我有一个下拉菜单:

但是当我单击第二行中的设置时,我在与第一行相同的位置有一个下拉菜单。我该如何解决?

这里有一个代码笔同样的麻烦: CodePen

html

<div class="table-responsive">
        <table class="table table-hover table-sm">
            <thead>
                <tr>
                    <th>Фио сотрудника</th>
                    <th>Должность</th>
                    <th>Телефон</th>
                    <th>Ломбард</th>
                    <th>Профиль доступа</th>
                    <th></th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td class="tflex">
                        <span class="default-av">hC</span>
                        <span>Тарнавский Дмитрий Алексеевич</span>
                    </td>
                    <td>Разработчик</td>
                    <td>+7 (921) 030-33-32</td>
                    <td>Южный</td>
                    <td>Администратор</td>
                    <td align="center">
                        <div class="dropdown">
                            <a class="btn btn-secondary" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                                <i class="far fa-cog"></i>
                            </a>    
                            <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                                <a class="dropdown-item" href="#">Action</a>
                                <a class="dropdown-item" href="#">Another action</a>
                                <a class="dropdown-item" href="#">Something else here</a>
                            </div>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td>Разработчик</td>
                    <td>Moe</td>
                    <td>+7 (921) 030-33-32</td>
                    <td>Dooley</td>
                    <td>+7 (921) 030-33-32</td>
                    <td align="center">
                        <div class="dropdown">
                            <a class="btn btn-secondary" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                                <i class="far fa-cog"></i>
                            </a>    
                            <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                                <a class="dropdown-item" href="#">Action2</a>
                                <a class="dropdown-item" href="#">Another action</a>
                                <a class="dropdown-item" href="#">Something else here</a>
                            </div>
                        </div>
                    </td>
                </tr>

            </tbody>
        </table>
    </div>

【问题讨论】:

对两个下拉菜单使用唯一的 Ids 我试过了,没有成功 我尝试了 Codepen Snippet 及其对我的工作 我们正在谈论这个: 对吗? 【参考方案1】:

如Bootstrap docs中所述...

垂直剪裁/截断 响应式表使用溢出-y: 隐藏,它会剪掉超出底部或顶部的任何内容 桌子的边缘。特别是,这可以剪掉下拉菜单 和其他第三方小部件。

这是因为 table-responsive 没有足够的垂直高度。给table-responsive 一个最小高度,例如...

.vh-100 
    min-height: 100vh;

https://codepen.io/anon/pen/VXmLqG?editors=1100

【讨论】:

您的 codepen 有一些问题.. 我看不到它,它总是重新加载页面.. 所以我们检测到响应表中的主要问题。好的。我只是试图删除类表响应。现在我遇到了麻烦,我的 ddmenu 显示远离屏幕右侧。另外,当我重新加载页面时,我需要在元素上单击两次才能打开 ddmenu .. 我该如何解决?第二个问题是我需要打开/关闭 ddmenu 大约 20 次,之后我的 ddmenu 将显示在正常位置......它会是什么? 我的 codepen 上的同样问题:codepen.io/WhoIsDT/pen/RMoNEL。你可以看到。我删除了响应式 talbe 类,现在我需要打开/关闭几次,并且一次 ddmenu 从右向左移动几个 px。如何解决这个错误?【参考方案2】:

data-toggle="dropdown" data-boundary="window"

上面的代码对我有用!

这是我在表格单元格代码中的完整下拉列表:

<div class="btn-group d-md-none m-1">
  <button class="btn btn-primary dropdown-toggle"
    type="button"
    id="dropdownMenuButton"
    data-toggle="dropdown"
    data-boundary="window"
    aria-haspopup="true"
    aria-expanded="false">
    <span>Actions</span>
  </button>
  <div class="dropdown-menu">
    <a href="#" class="dropdown-item">Dropdown item</a>
  </div>
</div>
</td>

【讨论】:

【参考方案3】:

为 Bootstrap 4 定义此属性。祝你好运!

data-toggle="dropdown" data-boundary="window"

【讨论】:

请具体说明在哪里添加。它是在锚标签上还是在实际的下拉 DIV 上?【参考方案4】:

这是工作小提琴

<div class="table-responsive">
    <table class="table table-hover table-sm">
        <thead>
            <tr>
                <th>Фио сотрудника</th>
                <th>Должность</th>
                <th>Телефон</th>
                <th>Ломбард</th>
                <th>Профиль доступа</th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="tflex">
                    <span class="default-av">hC</span>
                    <span>Тарнавский Дмитрий Алексеевич</span>
                </td>
                <td>Разработчик</td>
                <td>+7 (921) 030-33-32</td>
                <td>Южный</td>
                <td>Администратор</td>
                <td align="center">
                    <div class="dropdown">
                        <a class="btn btn-secondary" href="#" role="button" id="dropdownMenuLink1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                            <i class="far fa-cog"></i>
                        </a>    
                        <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                            <a class="dropdown-item" href="#">Action</a>
                            <a class="dropdown-item" href="#">Another action</a>
                            <a class="dropdown-item" href="#">Something else here</a>
                        </div>
                    </div>
                </td>
            </tr>
            <tr>
                <td>Разработчик</td>
                <td>Moe</td>
                <td>+7 (921) 030-33-32</td>
                <td>Dooley</td>
                <td>+7 (921) 030-33-32</td>
                <td align="center">
                    <div class="dropdown">
                        <a class="btn btn-secondary" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                            <i class="far fa-cog"></i>
                        </a>    
                        <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                            <a class="dropdown-item" href="#">Action2</a>
                            <a class="dropdown-item" href="#">Another action</a>
                            <a class="dropdown-item" href="#">Something else here</a>
                        </div>
                    </div>
                </td>
            </tr>
                    <tr>
                <td>Разработчик</td>
                <td>Moe</td>
                <td>+7 (921) 030-33-32</td>
                <td>Dooley</td>
                <td>+7 (921) 030-33-32</td>
                <td align="center">
                    <div class="dropdown">
                        <a class="btn btn-secondary" href="#" role="button" id="dropdownMenuLink2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                            <i class="far fa-cog"></i>
                        </a>    
                        <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                            <a class="dropdown-item" href="#">Action2</a>
                            <a class="dropdown-item" href="#">Another action</a>
                            <a class="dropdown-item" href="#">Something else here</a>
                        </div>
                    </div>
                </td>
            </tr>
                    <tr>
                <td>Разработчик</td>
                <td>Moe</td>
                <td>+7 (921) 030-33-32</td>
                <td>Dooley</td>
                <td>+7 (921) 030-33-32</td>
                <td align="center">
                    <div class="dropdown">
                        <a class="btn btn-secondary" href="#" role="button" id="dropdownMenuLink4" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                            <i class="far fa-cog"></i>
                        </a>    
                        <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                            <a class="dropdown-item" href="#">Action2</a>
                            <a class="dropdown-item" href="#">Another action</a>
                            <a class="dropdown-item" href="#">Something else here</a>
                        </div>
                    </div>
                </td>
            </tr>
            <tr>
                <td>Разработчик</td>
                <td>Moe</td>
                <td>+7 (921) 030-33-32</td>
                <td>Dooley</td>
                <td>+7 (921) 030-33-32</td>
                <td align="center">
                    <div class="dropdown">
                        <a class="btn btn-secondary" href="#" role="button" id="dropdownMenuLink7" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                            <i class="far fa-cog"></i>
                        </a>    
                        <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
                            <a class="dropdown-item" href="#">Action2</a>
                            <a class="dropdown-item" href="#">Another action</a>
                            <a class="dropdown-item" href="#">Something else here</a>
                        </div>
                    </div>
                </td>
            </tr>
        </tbody>
    </table>
</div>

Working Fiddle

【讨论】:

也许我遗漏了什么?即使在我更改 id 时在 codepen 上也没有任何反应...... 检查小提琴中表格的最后一个元素 您可以识别更正。我想你的问题在这个小提琴中得到了回答

以上是关于表中的 Bootstrap 4 下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 4 导航栏下拉菜单链接

下拉菜单中的 Bootstrap4 下拉菜单关闭父菜单

Bootstrap - 移动菜单中的下拉菜单打开正常,无法关闭下拉菜单

Bootstrap 4打开多个导航栏下拉菜单,无需切换

Bootstrap 4嵌套下拉菜单?

Bootstrap 4,在导航菜单项中使用多个下拉按钮