请问为什么<span class="title">邮箱</span>要放在input后面?

请问为什么<span class="title">邮箱</span>要放在input后面?

<input id="mail" type="email" required placeholder="输入邮箱">

<span class="title">邮箱</span>

<label for="mail"></label>

不是一般都将<span class="title">邮箱</span>放在前面吗?

而且按效果上的顺序看也是邮箱在前面呀,为什么放前面就实现不了这个效果呢?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好,span.title放在前面也是可以的,都是需要通过定位实现的。

同学可以将自己写的代码粘贴上来,老师帮助你测试下问题。

祝学习愉快!

提问者 Takm 2019-04-10 11:22:56

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>纯CSS表单验证美化(invalid和valid)应用案例</title>

<style>

.container{

margin:100px;

position:relative;

}

input{

border: 1px solid #999;

outline:0;

width:140px;

height:30px;

line-height:30px;text-indent:36px;transition: all .3s;

border-radius:5px;

}

span.title{

position:absolute;

line-height:30px;

height: 30px;

left:2px;

top:2px;

transition:all .3s;

}

input:focus,input:hover{

text-indent:2px;

}

input:focus+span.title,input:hover+span.title{

transform:translateX(-120%)

}

input:valid ~label::after{

content: "你输入正确!"

}

input:invalid ~label::after{

content: "你邮箱错误!"

}

input:valid{

border:1px solid green;

}

input:invalid{

border:1px solid red;

}

</style>

</head>

<body>

<div class="container">

<span class="title">邮箱</span>

<input id="mail" type="email" required placeholder="输入邮箱">

<label for="mail"></label>

</div>

</body>

</html>

这样移到表单里前面的邮箱不会移动

  • 你好,是+选择器的原因,选择的是当前移入元素的后一个,不能选择前面的兄弟元素,所以没有效果。css中没有选择前一个元素的选择器,所以input和span是不能调换位置的,之前老师没有测试所以说可以,非常抱歉。
    2019-04-10 11:41:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
响应式开发与常用框架 2018
  • 参与学习           人
  • 提交作业       2198    份
  • 解答问题       5012    个

如果你有web端基础,既想进阶,又想进军移动端开发,那就来吧,我们专题为你带来的课程有HTML5、CSS3、移动基础、响应式、bootstrap、less等,让你在前端道路上畅通无阻!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师