我想像这个例子一样影响我的输入字段:
https://colorlib.com/etc/cf/ContactFrom_v17/index.html
我在这个例子中看到有一个跨度“包裹”(+2px) 一个输入字段并且它们正在对该跨度产生影响,但我未能使该跨度包裹输入字段。
这是我的联系方式:https://codepen.io/anon/pen/xWwEvm
HTML:
<div id="contactDiv">
<div id="innerContact">
<div class="rightDiv">
<div class="innerRightDiv">
<form method="post" action="contact.php">
<h3 id="customH3" class="lang" key="send">Send Us A Mail</h3>
<div class="lblDiv">
<label for="name" class="lang" key="name">Name</label>
</div>
<input required="" type="text" id="name" name="name" placeholder="Your name.."><input required="" type="text" id="lastName" name="name" placeholder="Last name..">
<div class="lblDiv">
<label for="email" class="lang" key="email">Email</label>
</div>
<div>
<input required="" type="email" id="email" name="email" placeholder="Your email..">
<div style="/* width: 100%; */height: 100%;"></div>
</div>
<div class="lblDiv">
<label for="message" class="lang" key="message">Message</label>
</div>
<textarea required="" id="message" name="message" placeholder="Write something.."></textarea>
<!--
-->
<div class="submitDiv">
<input id="submit" name="submit" type="submit" value="Submit">
</div>
</form>
</div>
</div>
</div>
</div>
CSS:
input[type=text], select, textarea {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
box-sizing: border-box;
margin-bottom: 16px;
resize: vertical;
}
input[type=email], select, textarea {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
box-sizing: border-box;
margin-bottom: 16px;
resize: vertical;
}
input[type=submit] {
background-color: #3FA9F5;
color: white;
padding: 12px 20px;
border: none;
cursor: pointer;
}
input[type=submit]:hover {
background-color: #45a049;
}
#contactDiv {
height: 800px;
margin-bottom: 5%;
}
.contacth2 {
margin-top: 10%;
margin-bottom: 5%;
}
#innerContact {
width: 70%;
height: 100%;
margin: auto;
}
.rightDiv {
background-color: white;
padding: 20px;
width: 50%;
float: left;
height: 100%
}
.lblDiv {
border: 1px solid #ccc;
padding: 12px;
}
.innerRightDiv {
width: 80%;
margin: auto;
}
.submitDiv {
text-align: center;
}
.innerDivs {
height: 100%;
display: table-cell;
vertical-align: middle;
text-align: center;
}
.innerDiv {
text-align: left;
padding-top: 30px;
padding-bottom: 30px;
color: white;
}
.bold {
font-weight: bold;
}
h3 {
font-size: 20px;
font-weight: bold;
padding: 5px;
}
.wrapperDiv {
padding-left: 30%;
padding-top: 30px;
padding-bottom: 30px;
}
textarea {
resize: none;
font: 400 13.3333px Arial;
font-size: 1.6rem;
height: 150px;
margin-top: -1px;
}
#lastName, #name {
width: 50%;
}
有一个容器,其中有一个输入,后面跟着一个跨度。跨度具有过渡效果,但默认情况下是不可见的。当输入获得焦点时,跨度会使用如下选择器进行修改:input:focus + span
。
其余代码是定位和样式的问题。注意:跨度的位置设置为 absolute
以将其定位在输入之上,因此,容器需要有一个 relative
位置。
我省略了 CSS 的一些细节,但这段代码展示了总体思路。
.container {
position: relative;
width: 100px;
}
input {
width: 100%;
}
.inputeffect {
position: absolute;
display: block;
width: 100%;
height: 100%;
top: 0;
border: 1px solid green;
visibility: hidden;
-webkit-transition: all 0.4s;
-o-transition: all 0.4s;
-moz-transition: all 0.4s;
transition: all 0.4s;
-webkit-transform: scale(1.3);
-moz-transform: scale(1.3);
-ms-transform: scale(1.3);
-o-transform: scale(1.3);
transform: scale(1.3);
}
input:focus + .inputeffect {
visibility: visible;
opacity: 1;
-webkit-transform: scale(1);
-moz-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
transform: scale(1);
}
<div class="container">
<input type="text"/>
<span class="inputeffect"></span>
</div>
旁注:请不要只是复制效果,请使用您自己的灵感!如果你确实想使用相同的效果,你应该考虑联系作者。
我是一名优秀的程序员,十分优秀!