Sna*_*e93 3 html css focus input bootstrap-4
我试图在输入类型编号聚焦时更改底部边框颜色。我部分成功了,但 css 并未应用于所有选择器。问题是这样的:
左侧(比索)未获得焦点,但它具有与 Kg 相同的选择器。这是代码:https://jsfiddle.net/snake93/nLdrcv71/1/
input[type=number] {
color: #666;
border-width: 0px 0px 1px 0px !important;
border-color: #dcdcdc !important;
border-radius: 0px !important;
background: #fafafa00;
}
.input-group-text {
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
padding: .375rem .75rem;
margin-bottom: 0px;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #495057;
background-color: #ffffff00 !important;
border: 1px solid #dcdcdc !important;
border-radius: .25rem;
border-width: 0px 0px 1px 0px !important;
border-radius: 0px !important;
}
.form-control:focus,
.form-control:focus + span {
color: #00a1ff;
background-color: #fff0;
border-color: #00a1ff !important;
outline: 0;
box-shadow: none !important;
border: solid;
border-width: 0px 0px 2px 0px !important;
}
.input-group-text:focus {
background:red !important;
}
Run Code Online (Sandbox Code Playgroud)
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.3/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.min.js" ></script>
<div class="input-group mb-3">
<span class="input-group-text">Peso</span>
<input type="number" class="form-control">
<span class="input-group-text">Kg</span>
</div>
Run Code Online (Sandbox Code Playgroud)
选择器.form-control:focus + span仅影响该类元素后面的跨度.form-control。相反,您可以使用.input-group:focus-within span它将您的样式应用于子级跨度,当具有该类的元素.input-group获得焦点时。
.form-control:focus,
.input-group:focus-within span {
color: #00a1ff;
background-color: #fff0;
...
Run Code Online (Sandbox Code Playgroud)
编辑:我添加了完整的标记来证明该解决方案确实有效。
input[type=number] {
color: #666;
border-width: 0px 0px 1px 0px !important;
border-color: #dcdcdc !important;
border-radius: 0px !important;
background: #fafafa00;
}
.input-group-text {
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
padding: .375rem .75rem;
margin-bottom: 0px;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #495057;
background-color: #ffffff00 !important;
border: 1px solid #dcdcdc !important;
border-radius: .25rem;
border-width: 0px 0px 1px 0px !important;
border-radius: 0px !important;
}
.form-control:focus,
.input-group:focus-within span {
color: #00a1ff;
background-color: #fff0;
border-color: #00a1ff !important;
outline: 0;
box-shadow: none !important;
border: solid;
border-width: 0px 0px 2px 0px !important;
}
.input-group-text:focus {
background:red !important;
}Run Code Online (Sandbox Code Playgroud)
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.3/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.min.js" ></script>
<div class="input-group mb-3">
<span class="input-group-text">Peso</span>
<input type="number" class="form-control">
<span class="input-group-text">Kg</span>
</div>Run Code Online (Sandbox Code Playgroud)