侧边栏壁纸
博主昵称

小熊猫登陆html页面

头两天看到一个登陆页面,是个大熊猫抱着登录框,输入账户的时候还是正常的,当光标跳转到密码框时熊猫刚好把登录框举了起来,挡住了熊猫的眼睛,意思是不会看你输入密码,我感觉寓意挺好,自己也记录一下,留存。

先看看图

示例图

html代码:

 1 <div class="container">
 2        <div class="panda">
 3            <div class="ear left"></div>
 4            <div class="ear right"></div>
 5            <div class="face">
 6                <div class="eye-shadow left"></div>
 7                <div class="eye-white left">
 8                    <div class="eye-ball"></div>
 9                </div>
10                <div class="eye-shadow right"></div>
11                <div class="eye-white right">
12                    <div class="eye-ball"></div>
13                </div>
14                <div class="nose"></div>
15                <div class="mouth"></div>
16            </div>
17            <div class="body"></div>
18            <div class="foot left">
19                <div class="sole"></div>
20            </div>
21            <div class="foot right">
22                <div class="sole"></div>
23            </div>
24        </div>
25        <div class="login-box">
26            <div class="hand left"></div>
27            <div class="hand right"></div>
28            <h1>用户登录</h1>
29            <div class="ipt-box">
30                <input type="text" required>
31                <label>用户名</label>
32            </div>
33            <div class="ipt-box">
34                <input type="password" id="password" required>
35                <label>密码</label>
36            </div>
37            <button>登录</button>
38        </div>
39    </div>

对应的js代码

 1// 当密码输入框获得焦点时,向登录框添加类名'up'
 2$('#password').focusin(function () {
 3    $('.login-box').addClass('up');
 4}).focusout(function () {
 5    // 当密码输入框失去焦点时,从登录框移除类名'up'
 6    $('.login-box').removeClass('up');
 7})
 8
 9// 监听鼠标移动事件
10$(document).on('mousemove', function (e) {
11    // 计算鼠标移动距离与页面宽高的比例
12    let dw = $(document).width() / 10;
13    let dh = $(document).height() / 18;
14    let x = e.pageX / dw;
15    let y = e.pageY / dh;
16    
17    // 设置眼珠位置随鼠标移动
18    $('.eye-ball').css({
19        left: x,
20        top: y
21    })
22})

对应的CSS代码

  1/* 清除所有元素的默认margin和padding */  
  2* {  
  3    margin: 0; /* 清除外边距 */  
  4    padding: 0; /* 清除内边距 */  
  5}  
  6  
  7/* 设置body的样式 */  
  8body {  
  9    height: 100vh; /* 设置body的高度为视口高度的100% */  
 10    display: flex; /* 使用flex布局 */  
 11    justify-content: center; /* 在主轴上居中子元素 */  
 12    align-items: center; /* 在交叉轴上居中子元素 */  
 13    background: linear-gradient(200deg, #37e2b2, #2fa080); /* 设置背景色为线性渐变 */  
 14}  
 15  
 16/* 设置panda容器的样式 */  
 17.panda {  
 18    position: relative; /* 设置相对定位 */  
 19    width: 200px; /* 设置宽度为200px */  
 20}  
 21  
 22/* 设置face的样式 */  
 23.face {  
 24    width: 200px; /* 设置宽度为200px */  
 25    height: 200px; /* 设置高度为200px */  
 26    background-color: #fff; /* 设置背景色为白色 */  
 27    border-radius: 100%; /* 设置边框半径为100%,即圆形 */  
 28    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.15); /* 添加阴影效果 */  
 29    position: relative; /* 设置相对定位 */  
 30    z-index: 1; /* 设置堆叠顺序 */  
 31}  
 32  
 33/* 设置ear的样式 */  
 34.ear {  
 35    width: 70px; /* 设置宽度为70px */  
 36    height: 70px; /* 设置高度为70px */  
 37    background-color: #000; /* 设置背景色为黑色 */  
 38    border-radius: 100%; /* 设置边框半径为100%,即圆形 */  
 39    position: absolute; /* 设置绝对定位 */  
 40    top: -10px; /* 设置距离顶部的距离为-10px,使其向上偏移 */  
 41}  
 42  
 43/* 设置右侧的ear样式 */  
 44.ear.right {  
 45    right: 0; /* 设置距离容器右侧的距离为0 */  
 46}  
 47  
 48/* 设置eye-shadow的样式 */  
 49.eye-shadow {  
 50    width: 50px; /* 设置宽度为50px */  
 51    height: 80px; /* 设置高度为80px */  
 52    background-color: #000; /* 设置背景色为黑色 */  
 53    border-radius: 50%; /* 设置边框半径为50%,即半圆形 */  
 54    position: absolute; /* 设置绝对定位 */  
 55    top: 40px; /* 设置距离顶部的距离为40px */  
 56}  
 57  
 58/* 设置左侧的eye-shadow样式 */  
 59.eye-shadow.left {  
 60    transform: rotate(45deg); /* 旋转45度 */  
 61    left: 30px; /* 设置距离容器左侧的距离为30px */  
 62}  
 63  
 64/* 设置右侧的eye-shadow样式 */  
 65.eye-shadow.right {  
 66    transform: rotate(-45deg); /* 旋转-45度 */  
 67    right: 30px; /* 设置距离容器右侧的距离为30px */  
 68}  
 69  
 70/* 设置eye-white的样式 */  
 71.eye-white {  
 72    width: 30px; /* 设置宽度为30px */  
 73    height: 30px; /* 设置高度为30px */  
 74    background-color: #fff; /* 设置背景色为白色 */  
 75    border-radius: 100%; /* 设置边框半径为100%,即圆形 */  
 76    position: absolute; /* 设置绝对定位 */  
 77    top: 68px; /* 设置距离顶部的距离为68px */  
 78}  
 79  
 80/* 设置左侧的eye-white样式 */  
 81.eye-white.left {  
 82    left: 38px; /* 设置距离容器左侧的距离为38px */  
 83}  
 84  
 85/* 设置右侧的eye-white样式 */  
 86.eye-white.right {  
 87    right: 38px; /* 设置距离容器右侧的距离为38px */  
 88}  
 89
 90  
 91/* 设置眼球的样式 */  
 92.eye-ball {  
 93    width: 20px; /* 设置眼球的宽度为20px */  
 94    height: 20px; /* 设置眼球的高度为20px */  
 95    background-color: #000; /* 设置眼球的颜色为黑色 */  
 96    border-radius: 100%; /* 设置边框半径为100%,使眼球呈圆形 */  
 97    position: absolute; /* 设置为绝对定位,使其可以相对于最近的已定位父元素进行定位 */  
 98    left: 5px; /* 距离左侧父元素5px */  
 99    top: 5px; /* 距离顶部父元素5px */  
100}  
101
102  
103/* 设置鼻子的样式 */  
104.nose {  
105    width: 35px; /* 设置鼻子的宽度为35px */  
106    height: 20px; /* 设置鼻子的高度为20px */  
107    background-color: #000; /* 设置鼻子的颜色为黑色 */  
108    position: absolute; /* 设置为绝对定位 */  
109    left: 0; /* 距离左侧父元素0px */  
110    right: 0; /* 距离右侧父元素0px,这里和left一起使用是为了水平居中 */  
111    margin: auto; /* 自动计算左右外边距,使元素水平居中 */  
112    bottom: 65px; /* 距离底部父元素65px */  
113    border-radius: 42px 42px 60px 60px / 30px 30px 60px 60px; /* 设置水平和垂直边框半径,创建椭圆形状 */  
114}  
115  
116
117  
118/* 设置嘴巴的样式 */  
119.mouth {  
120    width: 68px; /* 设置嘴巴的宽度为68px */  
121    height: 25px; /* 设置嘴巴的高度为25px */  
122    border-bottom: 7px solid #000; /* 底部边框为7px的实线,颜色为黑色 */  
123    border-radius: 50%; /* 设置边框半径为50%,使嘴巴呈半圆形 */  
124    position: absolute; /* 设置为绝对定位 */  
125    left: 0; /* 距离左侧父元素0px */  
126    right: 0; /* 距离右侧父元素0px,这里和left一起使用是为了水平居中 */  
127    margin: auto; /* 自动计算左右外边距,使元素水平居中 */  
128    bottom: 35px; /* 距离底部父元素35px */  
129}  
130  
131  
132/* 设置身体的样式 */  
133.body {  
134    width: 250px; /* 设置身体的宽度为250px */  
135    height: 280px; /* 设置身体的高度为280px */  
136    background-color: #fff; /* 设置身体的颜色为白色 */  
137    position: relative; /* 设置为相对定位,使其可以作为绝对定位元素的参考点 */  
138    left: -25px; /* 距离左侧父元素-25px,向左偏移 */  
139    top: -10px; /* 距离顶部父元素-10px,向上偏移 */  
140    border-radius: 100px 100px 100px 100px / 126px 126px 96px 96px; /* 设置水平和垂直边框半径,创建椭圆形状 */  
141    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3); /* 添加阴影效果 */  
142}  
143  
144  
145/* 设置脚的样式 */  
146.foot {  
147    width: 82px; /* 设置脚的宽度为82px */  
148    height: 120px; /* 设置脚的高度为120px */  
149    background-color: #000; /* 设置脚的颜色为黑色 */  
150    position: absolute; /* 设置为绝对定位 */  
151    bottom: 8px; /* 距离底部父元素8px */  
152    z-index: 3; /* 设置堆叠顺序为3,以确保在其他元素之上 */  
153    border-radius: 40px 40px 35px 40px / 26px 26px 63px 63px; /* 设置水平和垂直边框半径,创建椭圆形状 */  
154    box-shadow: 0 5px 5px rgba(0, 0, 0, 0.2); /* 添加阴影效果 */  
155}  
156
157/* 左脚样式设置 */  
158.foot.left {  
159    left: -80px; /* 左脚距离其最近的已定位父元素的左侧为-80px,即向左偏移80px */  
160}  
161  
162/* 右脚样式设置 */  
163.foot.right {  
164    right: -80px; /* 右脚距离其最近的已定位父元素的右侧为-80px,即向右偏移80px */  
165    transform: rotateY(180deg); /* 围绕Y轴旋转180度,使右脚朝向与左脚相反 */  
166}  
167  
168/* 脚的内部阴影部分 */  
169.foot::after {  
170    content: ""; /* 使用伪元素生成内容,但不显示实际内容 */  
171    width: 55px; /* 设置内部阴影部分的宽度为55px */  
172    height: 65px; /* 设置内部阴影部分的高度为65px */  
173    background-color: #222; /* 设置内部阴影部分的颜色为深灰色 */  
174    position: absolute; /* 设置为绝对定位 */  
175    border-radius: 50%; /* 设置边框半径为50%,使内部阴影部分呈圆形 */  
176    left: 0; /* 距离左侧父元素0px */  
177    right: 0; /* 距离右侧父元素0px,这里和left一起使用是为了水平居中 */  
178    margin: auto; /* 自动计算左右外边距,使元素水平居中 */  
179    bottom: 10px; /* 距离脚部底部10px */  
180}  
181  
182/* 脚底的样式设置 */  
183.foot .sole,  
184.foot .sole::before,  
185.foot .sole::after {  
186    width: 20px; /* 设置脚底及其伪元素的宽度为20px */  
187    height: 30px; /* 设置脚底及其伪元素的高度为30px */  
188    background-color: #222; /* 设置脚底及其伪元素的颜色为深灰色 */  
189    position: absolute; /* 设置为绝对定位 */  
190    border-radius: 50%; /* 设置边框半径为50%,使脚底及其伪元素呈圆形 */  
191    left: 0; /* 距离左侧父元素0px */  
192    right: 0; /* 距离右侧父元素0px,这里和left一起使用是为了水平居中 */  
193    margin: auto; /* 自动计算左右外边距,使元素水平居中 */  
194    top: 8px; /* 距离脚部顶部8px */  
195}  
196  
197/* 脚底左侧伪元素 */  
198.foot .sole::before {  
199    content: ""; /* 使用伪元素生成内容,但不显示实际内容 */  
200    left: -50px; /* 相对于脚底元素向左偏移-50px,即向左偏移50px */  
201}  
202  
203/* 脚底右侧伪元素 */  
204.foot .sole::after {  
205    content: ""; /* 使用伪元素生成内容,但不显示实际内容 */  
206    left: 25px; /* 相对于脚底元素向右偏移25px */  
207}
208/* 设置手的样式,以及手的前后伪元素的样式 */  
209.hand,  
210.hand::before,  
211.hand::after {  
212    width: 40px; /* 设置宽度为40px */  
213    height: 30px; /* 设置高度为30px */  
214    background-color: #000; /* 设置背景颜色为黑色 */  
215    border-radius: 50px; /* 设置边框半径为50px,这里其实等于width/2,使形状呈圆形 */  
216    position: absolute; /* 设置为绝对定位 */  
217    top: 70px; /* 距离父元素顶部70px */  
218    left: -20px; /* 距离父元素左侧-20px,即向左偏移20px */  
219}  
220  
221/* 设置手的前伪元素样式 */  
222.hand::before {  
223    content: ""; /* 使用伪元素生成内容,但此处不显示实际内容 */  
224    top: 16px; /* 距离手元素顶部16px */  
225    left: 0; /* 距离手元素左侧0px */  
226}  
227  
228/* 设置手的后伪元素样式 */  
229.hand::after {  
230    content: ""; /* 使用伪元素生成内容,但此处不显示实际内容 */  
231    top: 32px; /* 距离手元素顶部32px */  
232    left: 0; /* 距离手元素左侧0px */  
233}  
234  
235/* 设置右手的样式 */  
236.hand.right {  
237    right: -20px; /* 距离父元素右侧-20px,即向右偏移20px */  
238    left: auto; /* 取消之前的left定位,让right定位生效 */  
239}  
240  
241/* 设置登录框的样式 */  
242.login-box {  
243    width: 400px; /* 设置宽度为400px */  
244    height: 300px; /* 设置高度为300px */  
245    background-color: #fff; /* 设置背景颜色为白色 */  
246    border-radius: 3px; /* 设置边框半径为3px */  
247    box-shadow: 0 0 15px rgba(0, 0, 0, 0.2); /* 设置阴影效果,颜色为半透明的黑色 */  
248    position: absolute; /* 设置为绝对定位 */  
249    left: 50%; /* 距离父元素左侧50% */  
250    top: 50%; /* 距离父元素顶部50% */  
251    transform: translate(-50%, -110px); /* 通过transform属性进行位置调整,使其水平居中且向上偏移110px */  
252    z-index: 2; /* 设置元素的堆叠顺序,值越大越在上层 */  
253    display: flex; /* 设置为flex布局 */  
254    justify-content: center; /* 子元素在主轴(默认是水平轴)上居中对齐 */  
255    align-items: center; /* 子元素在交叉轴上居中对齐 */  
256    flex-direction: column; /* 设置主轴方向为列方向 */  
257    transition: 0.3s; /* 设置过渡效果持续时间为0.3秒 */  
258}  
259  
260/* 设置h1标签的样式 */  
261h1 {  
262    color: #1dc797; /* 设置文字颜色为绿色 */  
263    font-weight: bold; /* 设置字体加粗 */  
264    margin-bottom: 5px; /* 设置下外边距为5px */  
265}
266/* 定义 ipt-box 类的样式,通常用于包裹输入框和标签 */  
267.ipt-box {  
268    width: 80%; /* 设置容器的宽度为父元素宽度的80% */  
269    margin-top: 25px; /* 设置容器上边距为25px */  
270    position: relative; /* 设置容器的定位方式为相对定位 */  
271}  
272  
273/* 定义 ipt-box 容器内的 input 元素的样式 */  
274.ipt-box input {  
275    width: 100%; /* 设置输入框的宽度为父元素宽度的100% */  
276    height: 35px; /* 设置输入框的高度为35px */  
277    border: none; /* 移除输入框的边框 */  
278    border-bottom: 1px solid #bbb; /* 设置输入框底部边框为1px宽,颜色为#bbb */  
279    text-indent: 5px; /* 设置输入框内文本的首行缩进为5px */  
280    outline: none; /* 移除输入框的默认轮廓线 */  
281    transition: 0.3s; /* 设置输入框的过渡效果时长为0.3秒 */  
282}  
283  
284/* 定义 ipt-box 容器内的 label 元素的样式 */  
285.ipt-box label {  
286    position: absolute; /* 设置标签的定位方式为绝对定位 */  
287    left: 5px; /* 设置标签距离父元素左侧的距离为5px */  
288    top: 5px; /* 设置标签距离父元素顶部的距离为5px */  
289    font-size: 14px; /* 设置标签的字体大小为14px */  
290    font-weight: bold; /* 设置标签的字体加粗 */  
291    color: #888; /* 设置标签的字体颜色为#888 */  
292    transition: 0.3s; /* 设置标签的过渡效果时长为0.3秒 */  
293    pointer-events: none; /* 禁止标签接收鼠标事件 */  
294}  
295  
296/* 当 ipt-box 容器内的 input 元素获取焦点或输入有效时,应用以下样式 */  
297.ipt-box input:focus,  
298.ipt-box input:valid {  
299    border-color: #1dc797; /* 设置输入框底部边框颜色为#1dc797 */  
300    box-shadow: 0 1px #1dc797; /* 设置输入框的阴影效果 */  
301}  
302  
303/* 当 ipt-box 容器内的 input 元素获取焦点或输入有效时,其相邻的 label 元素应用以下样式 */  
304.ipt-box input:focus~label,  
305.ipt-box input:valid~label {  
306    color: #1dc797; /* 设置标签的字体颜色为#1dc797 */  
307    font-size: 12px; /* 设置标签的字体大小为12px */  
308    font-weight: bold; /* 设置标签的字体加粗 */  
309    transform: translateY(-15px); /* 将标签向下移动15px */  
310}  
311  
312/* 定义 button 元素的样式 */  
313button {  
314    width: 150px; /* 设置按钮的宽度为150px */  
315    height: 40px; /* 设置按钮的高度为40px */  
316    background-color: #1dc797; /* 设置按钮的背景颜色为#1dc797 */  
317    border: none; /* 移除按钮的边框 */  
318    border-radius: 3px; /* 设置按钮的边框圆角为3px */  
319    margin-top: 30px; /* 设置按钮的上边距为30px */  
320    color: #fff; /* 设置按钮的字体颜色为白色 */  
321    letter-spacing: 10px; /* 设置按钮内文本的字符间距为10px */  
322    text-indent: 10px; /* 设置按钮内文本的首行缩进为10px */  
323    cursor: pointer; /* 设置鼠标悬停在按钮上时显示小手图标 */  
324    transition: 0.3s; /* 设置按钮的过渡效果时长为0.3秒 */  
325}  
326  
327/* 当鼠标悬停在 button 元素上时,应用以下样式 */  
328button:hover {  
329    letter-spacing: 25px; /* 设置按钮内文本的字符间距为25px */  
330    text-indent: 25px; /* 设置按钮内文本的首行缩进为25px */  
331    background-color: #2fa080; /* 设置按钮的背景颜色为#2fa080 */  
332}  
333  
334/* 为元素添加 transform 属性,将其沿 x 轴向左移动其宽度的50%,并沿 y 轴向上移动180像素 */  
335.up {  
336    transform: translate(-50%, -180px);  
337}
博主栏壁纸
博主头像 爱喝酸奶的我

一个随缘记录学习生活并取悦自己的博客小站

31 文章数
10 评论量
标签云