为什么默认使用input:invalid而不是main输入样式?

为什么默认使用input:invalid而不是main输入样式?

我已经参考了一些帖子和这个堆栈溢出链接:Set input as invalid,但没有太多帮助。

我试图实现的是一个正常的样式输入,当用户聚焦我们改变了边框颜色的输入时。当我们有一个有效的值时,我们用input:valid设置它的样式,否则我们用input:invalid设置它的样式。

我几乎已经做到了这一点,但是输入:invalid style被用作默认值。我想让边框/背景一开始是透明的。

代码语言:javascript复制body {

height: 100vh;

display: grid;

align-items: center;

margin: 0;

padding: 0 60px;

}

div {

display: grid;

position: relative;

max-width: 500px;

margin: 0 auto;

}

input:focus,

input:hover {

border-bottom-color: dodgerblue;

}

input:invalid {

border-bottom-color: red;

background: red;

color: white;

}

input:valid {

border-bottom-color: green;

background: green;

color: white;

}

input:valid+.icon:after {

font-family: "Font Awesome 5 Free";

content: "\f599";

color: white;

font-weight: 900;

}

input:invalid+.icon:after {

font-family: "Font Awesome 5 Free";

content: "\f119";

font-weight: 900;

color: white;

}

.icon {

position: absolute;

right: 0;

height: 35px;

width: 35px;

display: grid;

place-items: center;

}

input {

border: none;

outline: none;

border-bottom: 2px solid black;

height: 35px;

padding: 10px;

padding-right: 35px;

box-sizing: border-box;

transition: all 500ms linear;

}代码语言:javascript复制

相关文章