登录页结构设计
登录页的核心是用户认证表单,需包含以下基本元素:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">博客登录</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="login-container">
<h2>博客登录</h2>
<form action="/login" method="POST">
<input type="text" name="username" placeholder="用户名" required>
<input type="password" name="password" placeholder="密码" required>
<button type="submit">登录</button>
</form>
<div class="helper-links">
<a href="#">忘记密码?</a>
<a href="#">立即注册</a>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
样式美化方案
CSS属性 | 作用 | 示例值 |
---|---|---|
background |
设置背景图 | url('bg.jpg') no-repeat center/cover |
box-shadow |
卡片阴影 | 0 4px 12px rgba(0,0,0,0.2) |
border-radius |
圆角效果 | 10px |
font-family |
字体排版 | 'Arial', sans-serif |
transition |
动画过渡 | all 0.3s ease |
表单验证逻辑
HTML5原生验证
属性 | 功能 | 示例 |
---|---|---|
required |
必填项 | <input required> |
pattern |
正则验证 | pattern="^[A-Za-z0-9_]{6,}$" |
minlength |
最小长度 | minlength="6" |
JavaScript增强验证
document.querySelector('form').addEventListener('submit', function(e) { const username = e.target.username.value; const password = e.target.password.value; if (!/^[wu4e00-u9fa5]+$/.test(username)) { alert('用户名含非法字符'); e.preventDefault(); } });
交互效果实现
效果 | 实现方式 |
---|---|
输入框聚焦发光 | :focus { box-shadow: 0 0 5px #4a90e2; } |
错误抖动动画 | .shake { animation: shake 0.5s; } @keyframes shake { ... } |
按钮悬停变色 | :hover { background-color: #555; } |
常见问题与解答
Q1:如何选择合适的背景图片?
A1:优先选择分辨率≥1920×1080的高清图片,推荐使用Unsplash、Pexels等无版权图库,注意图片色调要与文字颜色形成对比,可通过filter: brightness(0.8)
降低亮度避免影响可读性。
- 点击后跳转至密码重置页
- 通过邮箱/手机验证码验证身份
- 允许用户设置新密码(需二次确认)
- 更新数据库