bootstrap-5 - 导航中带有两个单词的引导按钮会导致第二个单词换行
问题描述
我试图弄清楚如何使用“登录”按钮使引导程序 5 中的导航栏看起来正常。但是该空间导致它“进入”到第二行,使导航栏比预期的要长得多。我不知道如何防止它发生。https://codepen.io/binarycode/pen/PobJvOR
编辑:单词之间的“-”似乎也导致了问题。
<nav class="navbar navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand">Navbar</a>
<form class="d-flex">
<input type="email" aria-label="Email" placeholder="Email" autocomplete="Email" size="25"
value="{{ last_username }}" name="email" id="inputEmail" class="form-control me-2" required autofocus>
<input type="password" aria-label="Password" placeholder="Password" autocomplete="current-password" name="password"
id="inputPassword" class="form-control me-2" required>
<button class="btn btn-outline-success" type="submit">Log In</button>
</form>
</div>
</nav>
解决方案
(您的 CodePen 正在利用 Bootstrap 4.5.0,所以我的答案是双重的……)
对于 Bootstrap 4 (您的 CodePen 示例)
你有什么理由使用<form class="d-flex">
??
根据文档,正确用法是<form class="form-inline">
. 使用它,包裹就会消失。
如果你必须使用 " d-flex
" 那么你需要在某处注入 'white-space: no-wrap' ,例如像这样:
<button class="btn" type="submit" style="white-space: no-wrap">Log In</button>
对于 Bootstrap 5 (特定于Beta-2)
尽管文档建议应该使用“ d-flex
”,但是当浏览器认为剩余内容太小时,这不适用于包含空格的文本。
这是在问题#32383中提出的- 随后以固定方式关闭(尽管显然不是)。
但是,该问题确实讨论了原因。" d-flex
" 只是设置display: flex
CSS .. 这反过来为它的所有直接子项启用了弹性上下文。由于表单没有具体定义任何进一步的 flex 属性 .. 如果它认为合适,浏览器会假定包装。
一种解决方法是专门控制 flex 属性 - 一个似乎运行良好(并且在问题中提到)是flex-shrink-0
. 将其应用于您的按钮,它应该可以工作:
<nav class="navbar navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand">Navbar</a>
<form class="d-flex">
<input type="email" aria-label="Email" placeholder="Email" autocomplete="Email" size="25"
value="{{ last_username }}" name="email" id="inputEmail" class="form-control me-2" required autofocus>
<input type="password" aria-label="Password" placeholder="Password" autocomplete="current-password" name="password"
id="inputPassword" class="form-control me-2" required>
<button class="btn btn-outline-success flex-shrink-0" type="submit">Log In</button>
</form>
</div>
</nav>
推荐阅读
- node.js - 向 Mongoose 注册模型的正确方法
- swift - 如何在 RxSwift 中观察对象的属性?
- docker - Heroku 上的 .Net Core 与 Docker
- javascript - .click 功能在页面加载时触发
- asp.net-mvc - @Html.ActionLink 可以带 id 发送,在其他视图中查看 id
- go - 如何在 NAT 后面的两个节点之间进行通信?
- postgresql - 出现错误时 PostgreSQL 不返回完整响应
- javascript - 获取请求后如何更新 ReactJS 组件?
- javascript - childNodes 未附加到父节点
- angular - Angular Routing - redirectTo 没有路径的子路由