单击时形成不同的颜色

时间:2017-03-17 01:04:25

标签: html css forms css-transitions

我为页脚创建了一个表单,当您单击输入时,文本和边框底部从灰色过渡到白色。

Code Pen

HTML:

<div class="footer">

<div class="footerContainer">

    <form>

        <input type="text" class="name" placeholder="Name"/>

        <input type="text" class="subject" placeholder="Subject"/>

        <input type="tel" class="phone" placeholder="Phone Number"/>

        <textarea type="text" class="details" placeholder="Details"></textarea>

        <input type="submit" class="submit" placeholder="Submit"/>

    </form>

</div>

CSS:

.footer{
height: 100%;
width: 100%;
background-color: grey;
display: flex;
justify-content: center;
align-items: center;
}

.footerContainer{
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: darkgrey;
    width: 25%;
    padding: 2vw;
    margin: 2vw;
}

.name, .subject, .phone{
    background-color: transparent;
    border: 0;
    border-bottom: solid #bababa 1px;
    height: 2.8vw;
    font-size: 2vw;
    color: #bababa;
    transition: color linear 0.5s;
    margin-bottom: 1vw;
    font-family: 'Lora', sans-serif;
    width: 100%;
}

textarea{
    background-color: transparent;
    border: 0;
    border-bottom: solid #bababa 1px;
    height: 10vw;
    font-size: 2vw;
    color: #bababa;
    transition: color linear 0.5s;
    margin-bottom: 1vw;
    font-family: 'Lora', sans-serif;
    resize: none;
    width: 100%;
}

.submit{
    float: right;
    border: 1px solid black;
    border-radius: 0.4vw;
    height: 2vw;
    width: 4.5vw;
    font-size: 1vw;
    background-color: #92F398;
    cursor: pointer;
}

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder{
    color: #bababa;
    transition: color linear 0.5s;
}

input:focus::-webkit-input-placeholder, textarea:focus::-webkit-input-placeholder{
    color: white;
    transition: color linear 0.5s;
}

input:focus, textarea:focus{
    color: white;
    border-bottom: solid white 1px;
    transition: color linear 0.5s;
}

input:focus,
select:focus,
textarea:focus,
button:focus {
    outline: none;
}

我想要达到的目的是当用户在表单中输入内容并点击它时,所插入的文本将保持白色(它不会这样做)。

很抱歉,如果这篇文章没有完全遵守规则,那就有很多。我试着尽可能地格式化它。

1 个答案:

答案 0 :(得分:0)

你可以使用像:

这样的技巧
input:valid{
  color: white;
}

添加此css,所有有效输入都将具有白色文本颜色。

此外,您可以向输入添加minlength="4"添加可以决定何时输入应该更改颜色。

尝试写点什么,看看。

您在codepen