HTML和CSS实现的透明登录框效果

实现代码

HTML部分

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>透明登录框</title>
 6     <link rel="stylesheet" href="denglu.css">
 7 </head>
 8 <body>
 9     <div class="box">
10         <h2>Login</h2>
11         <form>
12             <div class="inputbox">
13                 <input type="text" name="" required="">
14                 <label>Username</label>
15             </div>
16             <div class="inputbox">
17                 <input type="password" name=" " required="">
18                 <label>Password</label>
19             </div>
20             <input type="submit" name="" value="submit">
21         </form>
22     </div>
23 </body>
24 </html>

CSS样式表部分

 1 body{
 2  margin:0px;
 3  padding:0px;
 4  font-family:sans-serif;
 5  background: url(bs3.jpg);
 6  background-size:cover;
 7 }
 8 .box{
 9  position:absolute;
10  top:50%;
11  left:50%;
12  transform:translate(-50%,-50%);
13     /*实现块元素百分比下居中*/
14  width:450px;
15  padding:50px;
16  background: rgba(0,0,0,.8);
17  box-sizing:border-box;
18  box-shadow: 0px 15px 25px rgba(0,0,0,.5);
19  border-radius:15px;
20 }
21 .box h2{
22  margin:0 0 30px;
23  padding:0;
24  color: #fff;
25  text-align:center;
26 }
27 .box .inputbox{
28  position:relative;
29 }
30 .box .inputbox input{
31  width: 100%;
32  padding:10px 0;
33  font-size:16px;
34  color:#fff;
35  letter-spacing: 1px;
36  margin-bottom: 30px;
37  border:none;
38  border-bottom: 1px solid #fff;
39  outline:none;
40  background: transparent;
41 }
42 .box .inputbox label{
43  position:absolute;
44  top:0px;
45  left:0px;
46  padding:10px 0;
47  font-size: 16px;
48  color:#fff;
49  pointer-events:none;
50  transition:.5s;
51 }
52 .box .inputbox input:focus ~ label, 53 .box .inputbox input:valid ~ label 54 {
55  top:-18px;
56  left:0;
57  color:#03a9f4;
58  font-size:14px;
59 }
60 .box input[type="submit"] 61 {
62  background: transparent;
63  border:none;
64  outline:none;
65  font-size: 16px;
66  color:#fff;
67  background: #03a9f4;
68  padding:15px 20px;
69  cursor: pointer;
70  border-radius:10px; 
71 }

来看一下最终展现的效果,这是一个动态的效果

初始状态

输入中的状态,登录框中的username和password有一个动态过渡上浮的效果:

想知道具体是什么效果,可以自己动手尝试一下~

如果对其中的属性有不了解的地方,可以参考下面的注解版代码哦。

 其中有涉及到相关选择器的知识,如有不解请参照 :   

https://www.cnblogs.com/nyw1983/p/11628364.html

 1 body{
 2     margin:0px;
 3     padding:0px;
 4     font-family:sans-serif;
 5     /*设置字体为sans-serif*/
 6     background: url(bs3.jpg);
 7     background-size:cover;
 8     /*背景图片尺寸为覆盖cover*/
 9 }
10 .box{
11     position:absolute;
12     /*定位方式绝对定位absolute*/
13     top:50%;
14     left:50%;
15     /*顶和高同时设置50%实现的是同时水平垂直居中效果*/
16     transform:translate(-50%,-50%);
17     /*实现块元素百分比下居中*/
18     width:450px;
19     padding:50px;
20     background: rgba(0,0,0,.8);
21     /*背景颜色为黑色,透明度为0.8*/
22     box-sizing:border-box;
23     /*box-sizing设置盒子模型的解析模式为怪异盒模型,
24     将border和padding划归到width范围内*/
25     box-shadow: 0px 15px 25px rgba(0,0,0,.5);
26     /*边框阴影  水平阴影0 垂直阴影15px 模糊25px 颜色黑色透明度0.5*/
27     border-radius:15px;
28     /*边框圆角,四个角均为15px*/
29 }
30 .box h2{
31     margin:0 0 30px;
32     padding:0;
33     color: #fff;
34     text-align:center;
35     /*文字居中*/
36 }
37 .box .inputbox{
38     position:relative;
39 }
40 .box .inputbox input{
41     width: 100%;
42     padding:10px 0;
43     font-size:16px;
44     color:#fff;
45     letter-spacing: 1px;
46     /*字符间的间距1px*/
47     margin-bottom: 30px;
48     border:none;
49     border-bottom: 1px solid #fff;
50     outline:none;
51     /*outline用于绘制元素周围的线
52     outline:none在这里用途是将输入框的边框的线条使其消失*/
53     background: transparent;
54     /*背景颜色为透明*/
55 }
56 .box .inputbox label{
57     /*<label> 标签为 input 元素定义标注(标记)*/
58     position:absolute;
59     top:0px;
60     left:0px;
61     padding:10px 0;
62     font-size: 16px;
63     color:#fff;
64     pointer-events:none;
65     /*鼠标事件消失,比如说选中文字,光标定位,超链接下划线*/
66     transition:.5s;
67     /*过渡时间5s*/
68 }
69 .box .inputbox input:focus ~ label,
70 .box .inputbox input:valid ~ label
71 {
72     top:-18px;
73     left:0;
74     color:#03a9f4;
75     font-size:14px;
76 }
77 .box input[type="submit"]
78 {
79     background: transparent;
80     border:none;
81     outline:none;
82     font-size: 16px;
83     color:#fff;
84     background: #03a9f4;
85     padding:15px 20px;
86     cursor: pointer;
87     /*光标呈现为指示链接的指针(一只手)*/
88     border-radius:10px; 
89 }