HTML && CSS 输入边框移动
HTML && CSS Input Border Movement
我有问题。我正在 HTML 和 CSS 中制作注册表。我在输入的焦点上放置了一个边框(单击后,会出现输入周围的边框),但随后另一个输入开始四处移动。我怎样才能修复那个动作?这是我的代码:
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
border: 1px solid rgba(170, 170, 170, 0.3);
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
}
input:focus {
border: 2px solid blueviolet;
outline: none!important;
}
<div class="inputs">
<input type="text" placeholder="User Name" name="name">
</div>
<div class="inputs">
<input type="email" placeholder="Email" name="email">
</div>
<div class="inputs">
<input type="password" placeholder="Password" name="password">
</div>
<div class="inputs">
<input type="password" placeholder="Confirm Password" name="confirmit">
</div>
<span class="img-text">Choose avatar: </span>
<input type="file" id="img" accept="image/*" style="border: none!important; background: none!important;">
<button class="register" type="submit" name="register">Register</button>
非常感谢帮助。
发生这种情况是因为您在焦点上添加了边框,但最初输入标签中没有边框,这就是您在 UI 中面临波动的原因。
要修复在输入中添加边框 属性 以及透明度。
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
border: solid 2px transparent;
}
在默认 input
样式中,您已将 border-width
设置为 1px
。
但是在聚焦时,您已将 border-width
设置为 2px
。
由于这个增量,输入的宽度和高度在焦点时增加。
因此需要将 border-width 设置为相同的默认值和焦点,如下所示。
在下面的代码片段中,我已将默认 input
样式 border-width
设置为 2px
,与聚焦输入相同。
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
border: 2px solid rgba(170, 170, 170, 0.3);
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
}
input:focus {
border: 2px solid blueviolet;
outline: none!important;
}
<div class="inputs">
<input type="text" placeholder="User Name" name="name">
</div>
<div class="inputs">
<input type="email" placeholder="Email" name="email">
</div>
<div class="inputs">
<input type="password" placeholder="Password" name="password">
</div>
<div class="inputs">
<input type="password" placeholder="Confirm Password" name="confirmit">
</div>
<span class="img-text">Choose avatar: </span>
<input type="file" id="img" accept="image/*" style="border: none!important; background: none!important;">
<button class="register" type="submit" name="register">Register</button>
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
border: 1px solid rgba(170, 170, 170, 0.3);
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
border: 2px solid transparent; /* input has border 2px when it has focus that's why here border 2px */
}
input:focus {
border: 2px solid blueviolet;
outline: none!important;
}
我检查了你的代码,默认边框大小为 1px,当它聚焦时,你将边框大小设置为 2px,这就是其他输入移动的原因。
/*either change input initial border size to 2px like/*
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
border: 2px solid rgba(170, 170, 170, 0.3);
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
}
/* or change focused input border size to 1px like/*
input:focus {
border: 1px solid blueviolet;
outline: none!important;
}
如果您想增加边框宽度,则可以改用内嵌框阴影。
此外,最好添加 * { box-sizing: border-box }
以避免此类问题。
* {
box-sizing: border-box;
}
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
border: none;
box-shadow: inset 0 0 0 1px rgba(170, 170, 170, 0.3);
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
min-height: 40px;
padding-left: 10px;
}
input:focus {
box-shadow: inset 0 0 0 2px blueviolet;
outline: none!important;
}
<div class="inputs">
<input type="text" placeholder="User Name" name="name">
</div>
<div class="inputs">
<input type="email" placeholder="Email" name="email">
</div>
<div class="inputs">
<input type="password" placeholder="Password" name="password">
</div>
<div class="inputs">
<input type="password" placeholder="Confirm Password" name="confirmit">
</div>
<span class="img-text">Choose avatar: </span>
<input type="file" id="img" accept="image/*" style="border: none!important; background: none!important;">
<button class="register" type="submit" name="register">Register</button>
我有问题。我正在 HTML 和 CSS 中制作注册表。我在输入的焦点上放置了一个边框(单击后,会出现输入周围的边框),但随后另一个输入开始四处移动。我怎样才能修复那个动作?这是我的代码:
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
border: 1px solid rgba(170, 170, 170, 0.3);
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
}
input:focus {
border: 2px solid blueviolet;
outline: none!important;
}
<div class="inputs">
<input type="text" placeholder="User Name" name="name">
</div>
<div class="inputs">
<input type="email" placeholder="Email" name="email">
</div>
<div class="inputs">
<input type="password" placeholder="Password" name="password">
</div>
<div class="inputs">
<input type="password" placeholder="Confirm Password" name="confirmit">
</div>
<span class="img-text">Choose avatar: </span>
<input type="file" id="img" accept="image/*" style="border: none!important; background: none!important;">
<button class="register" type="submit" name="register">Register</button>
非常感谢帮助。
发生这种情况是因为您在焦点上添加了边框,但最初输入标签中没有边框,这就是您在 UI 中面临波动的原因。
要修复在输入中添加边框 属性 以及透明度。
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
border: solid 2px transparent;
}
在默认 input
样式中,您已将 border-width
设置为 1px
。
但是在聚焦时,您已将 border-width
设置为 2px
。
由于这个增量,输入的宽度和高度在焦点时增加。
因此需要将 border-width 设置为相同的默认值和焦点,如下所示。
在下面的代码片段中,我已将默认 input
样式 border-width
设置为 2px
,与聚焦输入相同。
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
border: 2px solid rgba(170, 170, 170, 0.3);
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
}
input:focus {
border: 2px solid blueviolet;
outline: none!important;
}
<div class="inputs">
<input type="text" placeholder="User Name" name="name">
</div>
<div class="inputs">
<input type="email" placeholder="Email" name="email">
</div>
<div class="inputs">
<input type="password" placeholder="Password" name="password">
</div>
<div class="inputs">
<input type="password" placeholder="Confirm Password" name="confirmit">
</div>
<span class="img-text">Choose avatar: </span>
<input type="file" id="img" accept="image/*" style="border: none!important; background: none!important;">
<button class="register" type="submit" name="register">Register</button>
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
border: 1px solid rgba(170, 170, 170, 0.3);
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
border: 2px solid transparent; /* input has border 2px when it has focus that's why here border 2px */
}
input:focus {
border: 2px solid blueviolet;
outline: none!important;
}
我检查了你的代码,默认边框大小为 1px,当它聚焦时,你将边框大小设置为 2px,这就是其他输入移动的原因。
/*either change input initial border size to 2px like/*
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
border: 2px solid rgba(170, 170, 170, 0.3);
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
}
/* or change focused input border size to 1px like/*
input:focus {
border: 1px solid blueviolet;
outline: none!important;
}
如果您想增加边框宽度,则可以改用内嵌框阴影。
此外,最好添加 * { box-sizing: border-box }
以避免此类问题。
* {
box-sizing: border-box;
}
input {
width: 450px;
height: 3.5vh;
margin-bottom: 1rem;
outline: none;
color: white;
border: none;
box-shadow: inset 0 0 0 1px rgba(170, 170, 170, 0.3);
background: rgba(0, 0, 0, 0.5);
font-family: 'Poppins', sans-serif;
font-weight: bold;
border-radius: 3px;
min-height: 40px;
padding-left: 10px;
}
input:focus {
box-shadow: inset 0 0 0 2px blueviolet;
outline: none!important;
}
<div class="inputs">
<input type="text" placeholder="User Name" name="name">
</div>
<div class="inputs">
<input type="email" placeholder="Email" name="email">
</div>
<div class="inputs">
<input type="password" placeholder="Password" name="password">
</div>
<div class="inputs">
<input type="password" placeholder="Confirm Password" name="confirmit">
</div>
<span class="img-text">Choose avatar: </span>
<input type="file" id="img" accept="image/*" style="border: none!important; background: none!important;">
<button class="register" type="submit" name="register">Register</button>