gpt4 book ai didi

css - Material 设计输入 - 焦点效果中的错误

转载 作者:太空宇宙 更新时间:2023-11-03 17:26:40 25 4
gpt4 key购买 nike

我一直在寻找一个很好的 Material Design 输入教程 - 我找到了 here -,但是当我尝试在我的代码中应用它时,下划线不匹配。聚焦时的下划线比常规的 border-bottom 短。

这是我的意思的实例:Codepen

代码如下:

input {
font-size: 18px;
padding: 10px 10px 10px 5px;
display: block;
width: 300px;
border: none;
border-bottom: 1px solid #757575;
}
.bar {
position: relative;
display: block;
width: 300px;
}
.bar:before,
.bar:after {
content: '';
height: 2px;
width: 0;
bottom: 1px;
position: absolute;
background: rgba(37, 116, 169, 0.50);
transition: 0.2s ease all;
}
.bar:before {
left: 50%;
}
.bar:after {
right: 50%;
}
/* active state */

input:focus ~ .bar:before,
input:focus ~ .bar:after {
width: 50%;
}
<form>
<div class="group">
<input type="text" required>
<span class="bar"></span>
<label>Name</label>
</div>

<div class="group">
<input type="text" required>
<span class="bar"></span>
<label>Email</label>
</div>
</form>

有谁知道为什么会这样吗?

最佳答案

您需要在输入元素上设置box-sizing:border-box;:

input {
font-size: 18px;
padding: 10px 10px 10px 5px;
display: block;
width: 300px;
border: none;
border-bottom: 1px solid #757575;
box-sizing:border-box;
outline:none;
}
.bar {
position: relative;
display: block;
width: 300px;
}
.bar:before,
.bar:after {
content: '';
height: 2px;
width: 0;
bottom: 1px;
position: absolute;
background: rgba(37, 116, 169, 0.50);
transition: 0.2s ease all;
}
.bar:before {
left: 50%;
}
.bar:after {
right: 50%;
}
/* active state */

input:focus ~ .bar:before,
input:focus ~ .bar:after {
width: 50%;
}
<form>
<div class="group">
<input type="text" required>
<span class="bar"></span>
<label>Name</label>
</div>

<div class="group">
<input type="text" required>
<span class="bar"></span>
<label>Email</label>
</div>
</form>

那个,或者将跨度的宽度设置为大约 315 像素,当您考虑边框和填充时,这应该与输入的宽度相匹配。

关于css - Material 设计输入 - 焦点效果中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31271176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com