我想一起使用Bootstrap的“浮动标签”和“输入组”组件。我遇到的麻烦是当输入集中时标签是隐藏的。在下面的代码示例中,我有以下几种场景:
两个组件(请参见在input).
时标签消失)。
有人知道让这些组件一起工作的方法吗?
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
<div class="form-floating input-group mb-3">
<input type="text" class="form-control" name="code1" placeholder="Code 1">
<label for="code1">Code 1</label>
<span class="input-group-text"><i class="fas fa-times"></i></span>
</div>
<div class="form-floating mb-3">
<input type="text" class="form-control" name="code4" placeholder="Code 4">
<label for="code4">Code 4</label>
</div>
发布于 2021-08-09 20:50:49
为了改进@Unmitigated的答案,我最终删除了输入的两个右手角的半径。
.form-floating-group input {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
<div class="input-group mb-3">
<div class="form-floating form-floating-group flex-grow-1">
<input type="text" class="form-control" name="code1" placeholder="Code 1">
<label for="code1">Code 1</label>
</div>
<span class="input-group-text"><i class="fas fa-times"></i></span>
</div>
发布于 2021-08-09 20:10:53
将浮动标签放置在另一个input-group div中。
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
<div class="input-group mb-3">
<div class="form-floating flex-grow-1">
<input type="text" class="form-control" name="code1" placeholder="Code 1">
<label for="code1">Code 1</label>
</div>
<span class="input-group-text"><i class="fas fa-times"></i></span>
</div>
更新:由于引导5.2,不再需要flex-grow-1,边框四舍五入被自动处理。
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
<div class="input-group mb-3">
<div class="form-floating">
<input type="text" class="form-control" name="code1" placeholder="Code 1">
<label for="code1">Code 1</label>
</div>
<span class="input-group-text"><i class="fas fa-times"></i></span>
</div>
发布于 2022-01-06 17:48:47
我遇到了同样的需要。
这是我的解决方案:
表格:
<div class="col-12">
<div class="input-group mb-3">
<span class="input-group-text">Label :</span>
<div class="form-floating">
@Html.EditorFor(model => model.FieldA, new { htmlAttributes = new { @class = "form-control", placeholder = "Field A" } })
@Html.LabelFor(model => model.FieldA)
</div>
<div class="form-floating">
@Html.EditorFor(model => model.FieldB, new { htmlAttributes = new { @class = "form-control", placeholder = "Field B" } })
@Html.LabelFor(model => model.FieldB)
</div>
</div>
</div>注意:我正在使用ASP.NET,用相应的代码替换编辑器和标签-For调用:
<input type="text" class="form-control" name="code1" placeholder="Code 1">
<label for="code1">Code 1</label>
<span class="input-group-text"><i class="fas fa-times"></i></span>找到引导原始方式(V5.1)处理圆形边框。以下是原始代码行:
.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),
.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),
.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
margin-left: -1px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.input-group > .form-control,
.input-group > .form-select {
position: relative;
flex: 1 1 auto;
width: 1%;
min-width: 0;
}下面是基于我所知道的css选择器的定制css (实际上我是一个后端开发人员):
.input-group:not(.has-validation) .form-floating:not(:last-child) > :not(.dropdown-toggle):not(.dropdown-menu),
.input-group:not(.has-validation) .form-floating > .dropdown-toggle:nth-last-child(n+3) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.input-group.has-validation .form-floating:nth-last-child(n+3) > :not(.dropdown-toggle):not(.dropdown-menu),
.input-group.has-validation .form-floating > .dropdown-toggle:nth-last-child(n+4) {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.input-group .form-floating:not(:first-child) > :not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
/*margin-left: -1px;*/
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
/* for form to be responsive */
.input-group > .form-floating {
position: relative;
flex: 1 1 auto;
width: 1%;
min-width: 0;
}我想选择器可能会有很大的改进,因为有些情况不会再发生,可以随意提交改进!
https://stackoverflow.com/questions/68717954
复制相似问题