我想在我的输入字段中生效,例如:
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%;
}
答案 0 :(得分:1)
有一个容器,输入后跟一个span。
跨度具有过渡效果,但默认情况下不可见。
当聚焦输入时,使用选择器修改范围,如: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>
旁注:请不要只复制效果,使用自己的灵感!如果您确实想使用相同的效果,则应考虑与作者联系。