css - Bootstrap4 使所有输入组插件的宽度相同
问题描述
是否可以使所有前置附加组件的宽度相同?
即在此屏幕截图中,我希望电子邮件、许可证密钥 1 和许可证密钥 2 的长度相同,这可能吗?
如果我不使用附加组件而只使用常规标签和表单网格,那将是可能的,但似乎前置插件看起来比常规标签好得多。
相关的HTML是
<main class="container-fluid">
<form action="/license.process" name="process" id="process" method="post">
<div class="input-group mb-2">
<div class="input-group-prepend">
<label class="input-group-text" id="licenseEmaillabel">
Email
</label>
</div>
<input type="text" name="licenseEmail" value="paultaylor@jthink.net" class="form-control" aria-describedby="licenseEmaillabel">
</div>
<div class="input-group mb-2">
<div class="input-group-prepend">
<label class="input-group-text" id="licenseKey1label">
License Key 1
</label>
</div>
<input type="text" name="licenseKey1" value="51302c021440d595c860233f136731865a12cfad2ce2cc2" class="form-control" aria-describedby="licenseKey1label">
</div>
<div class="input-group mb-2">
<div class="input-group-prepend">
<label class="input-group-text" id="licenseKey2label">
License Key 2
</label>
</div>
<input type="text" name="licenseKey2" value="1e50214376557ba3e1dede6c490f33d07b738515c8c2a03" class="form-control" aria-describedby="licenseKey2label">
</div>
<h3 class="error" style="visibility:hidden;">
</h3>
<input type="submit" name="cancel" value="Cancel" class="btn btn-outline-secondary">
<input type="submit" name="save" value="Save" class="btn btn-outline-secondary">
<button onclick="j2html.tags.UnescapedText@d352d4f" type="button" class="btn btn-outline-secondary">
Get License
</button>
</form>
</main>
解决方案
所以这实际上非常复杂,因为每个标签都在它自己的 div 中,而不是兄弟链的一部分。而且 afaik,Bootstrap 不支持这种类型的大小,只支持相对大小的表单类(这实际上只会使字体更大)。这消除了我能想到的使用 flex/child 属性的大多数可能性。但是,我认为在这种情况下,硬编码不是正确的词用法。但想法是一样的。
在这种情况下使用示例min-width
不正确,因为min-width
!== width=xx
。例如,如果您设置min-width
为 50px,但有 1 个文本字符串比此长,您仍然会遇到与上述相同的问题。本质上,如果您不想将它们全部设置为一个特定值,那么您唯一的其他选择就是使用 Javascript。
这是我的纯 CSS 解决方法:
.input-group-prepend {
width : 35%; /*adjust as needed*/
}
.input-group-prepend label {
width: 100%;
overflow: hidden;
}
此外,您可以使用 Boostrap 特定的内联样式类,但这是任意的,也是 Bootstrap 的问题之一(太多的内联类使代码混乱,然后您必须手动将其添加到每个元素)。只是提供它作为替代品
例如:
<div class="input-group-prepend w-50"> /* grows to 50% of parent*/
<label class="input-group-text w-100" id="licenseEmaillabel"> /* grows to 100% of parent */
推荐阅读
- jackson - Spring Batch Oracle TIMESTAMP Jackson 序列化失败
- javascript - 如何让javascript提示问题一定次数
- html - 如何将自定义 css 添加到 github 页面
- azure - 如何将 blob 从 Azure 容器传输到 FTP 服务器/位置?
- android - 我在尝试登录时收到 PayPal 错误
- node.js - 我在客户端使用 next.js 并在服务器端使用 node.js 表达谁
- azure - 无法使用 Kubernetes 和 Letsencrypt 使用 Azure DNS 区域创建通配符 (*) 证书
- javascript - 在 vue js 中使用谷歌 API
- c# - GMail API 快速入门 c# 失败 HttpListener 异常
- php - PDO PostgreSQL 在 Windows 上使用 MAMP 出现“找不到驱动程序”错误