【问题标题】:Open an Modal window from Navigation bar从导航栏打开模态窗口
【发布时间】:2019-05-17 08:43:12
【问题描述】:
我正在尝试从导航栏打开一个模式窗口。我遵循了一些很好的教程,一旦我按下链接打开了一个模态,问题是模型窗口由于某种原因看起来不可编辑,甚至无法关闭模态窗口中的 X。在导航栏之外也同样有效。
我想知道为什么会这样。
我的代码如下:
<ul class="nav navbar-nav pull-right">
<li class="active"><a href="#">Home</a></li>
<li><a href="#" data-toggle="modal" data-target="#basicModal">Contact Us</a></li>
</ul>
<div class="modal fade" id="basicModal" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Basic Modal</h4>
</div>
<div class="modal-body">
<h3>Modal Body</h3>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">
Save changes
</button>
</div>
</div>
</div>
</div>
截图:
【问题讨论】:
-
只是一个想法。 Bootstrap 对导航栏有一个特殊的组件对齐方式。而不是使用 pull-right 将其更改为 navbar-right。使用 .navbar-left 或 .navbar-right 实用程序类对齐导航链接、表单、按钮或文本。两个类都将在指定方向添加 CSS 浮动。例如,要对齐导航链接,请将它们放在单独的
标签:
html
twitter-bootstrap
【解决方案1】:
这是覆盖in the official documentation:
模态标记放置
始终尝试将模态框的 HTML 代码放在文档中的顶级位置,以避免其他组件影响模态框的外观和/或功能。
将具有modal 类的<div> 放在导航栏之外。您可以将触发模式的<a> 留在导航栏中。
【解决方案2】:
<nav class="navbar bg-secondary">
<div
class="collapse navbar-collapse float-right" id="navcol-1" style="color:rgb(255,255,255);">
<ul class="nav navbar-nav ml-auto" role="navigation">
<li><a href="#myModal" data-toggle = "modal" data-target= "#myModal" class="nav-link">Contact us</a></li>
</ul>
</div>
</div>
</nav>
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">For your Queries</h5>
</div>
<div class="modal-body">
IF you have any questions, Mess Manager Office number is <strong>+01234567890</strong> or you can email us by <strong>Ouremail@domain.com</strong>>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss = "modal">Close</button>
</div>
</div>
</div>
</div>
【解决方案3】:
我遇到了同样的问题。我可以修复它的唯一方法是在导航栏中的链接上添加一个 jQuery 单击以覆盖引导默认值。像这样:
$("#navbar_register_btn").on("click",function(e){
e.preventDefault();
$('#basicModal').modal('show');
})
在这种情况下,您需要为导航栏中的链接提供“navbar_register_btn”的 ID。
【解决方案4】:
<div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalCenterTitle">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>