当前位置: 首页 > ds >正文

使用Trae简单编写一个登陆页面

主页面–login.html

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>用户登录</title><script src="https://cdn.tailwindcss.com"></script><link href="https://unpkg.com/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet"><script>tailwind.config = {theme: {extend: {colors: {primary: '#165DFF',secondary: '#6B7280',accent: '#3B82F6',},fontFamily: {inter: ['Inter', 'system-ui', 'sans-serif'],},}}}</script><style type="text/tailwindcss">@layer utilities {.content-auto {content-visibility: auto;}.card-shadow {box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.02);}.input-focus {@apply focus:ring-2 focus:ring-primary/50 focus:border-primary focus:outline-none;}}</style>
</head>
<body class="bg-gradient-to-br from-slate-50 to-slate-100 min-h-screen flex items-center justify-center font-inter p-4"><div class="w-full max-w-md"><!-- 登录卡片 --><div class="bg-white rounded-2xl p-8 card-shadow transform transition-all duration-300 hover:shadow-lg"><div class="text-center mb-8"><h1 class="text-[clamp(1.5rem,3vw,2rem)] font-bold text-slate-800">欢迎回来</h1><p class="text-secondary mt-2">请输入您的账号信息登录</p></div><!-- 登录表单 --><form id="loginForm" class="space-y-6"><!-- 用户名输入 --><div class="space-y-2"><label for="username" class="block text-sm font-medium text-slate-700">用户名</label><div class="relative"><div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"><i class="fa fa-user text-slate-400"></i></div><input type="text" id="username" name="username" requiredclass="w-full pl-10 pr-4 py-3 rounded-lg border border-slate-300 input-focus transition-all duration-200"placeholder="请输入用户名"></div></div><!-- 密码输入 --><div class="space-y-2"><div class="flex items-center justify-between"><label for="password" class="block text-sm font-medium text-slate-700">密码</label><a href="#" class="text-sm text-primary hover:text-primary/80 transition-colors duration-200" id="forgotPassword">忘记密码?</a></div><div class="relative"><div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"><i class="fa fa-lock text-slate-400"></i></div><input type="password" id="password" name="password" requiredclass="w-full pl-10 pr-10 py-3 rounded-lg border border-slate-300 input-focus transition-all duration-200"placeholder="请输入密码"><button type="button" id="togglePassword" class="absolute inset-y-0 right-0 pr-3 flex items-center text-slate-400 hover:text-slate-600 transition-colors duration-200"><i class="fa fa-eye-slash"></i></button></div></div><!-- 登录按钮 --><button type="submit" class="w-full bg-primary hover:bg-primary/90 text-white font-medium py-3 px-4 rounded-lg transition-all duration-200 transform hover:scale-[1.02] active:scale-[0.98] focus:ring-4 focus:ring-primary/20">登录</button></form><!-- 注册链接 --><div class="mt-8 text-center"><p class="text-slate-600">还没有账号? <a href="loginnew.html" class="font-medium text-primary hover:text-primary/80 transition-colors duration-200" id="registerLink">立即注册</a></p></div></div></div><script>// 密码显示/隐藏切换const togglePassword = document.getElementById('togglePassword');const passwordInput = document.getElementById('password');togglePassword.addEventListener('click', () => {const type = passwordInput.getAttribute('type') === 'password' ? 'text' : 'password';passwordInput.setAttribute('type', type);togglePassword.querySelector('i').classList.toggle('fa-eye');togglePassword.querySelector('i').classList.toggle('fa-eye-slash');});// 表单提交处理const loginForm = document.getElementById('loginForm');loginForm.addEventListener('submit', (e) => {e.preventDefault();const username = document.getElementById('username').value;const password = document.getElementById('password').value;// 简单表单验证if (!username.trim() || !password.trim()) {alert('请输入用户名和密码');return;}// 这里可以添加实际登录逻辑alert(`登录成功!用户名: ${username}`);});// 忘记密码链接点击事件document.getElementById('forgotPassword').addEventListener('click', (e) => {e.preventDefault();window.location.href = 'forgotpassword.html';});// 注册链接点击事件document.getElementById('registerLink').addEventListener('click', (e) => {e.preventDefault();window.location.href = 'loginnew.html';});</script>
</body>
</html>

注册页面 --loginnew.html

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>用户注册</title><script src="https://cdn.tailwindcss.com"></script><link href="https://unpkg.com/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet"><script>tailwind.config = {theme: {extend: {colors: {primary: '#165DFF',secondary: '#6B7280',accent: '#3B82F6',},fontFamily: {inter: ['Inter', 'system-ui', 'sans-serif'],},}}}</script><style type="text/tailwindcss">@layer utilities {.content-auto {content-visibility: auto;}.card-shadow {box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.02);}.input-focus {@apply focus:ring-2 focus:ring-primary/50 focus:border-primary focus:outline-none;}}</style>
</head>
<body class="bg-gradient-to-br from-slate-50 to-slate-100 min-h-screen flex items-center justify-center font-inter p-4"><div class="w-full max-w-md"><!-- 注册卡片 --><div class="bg-white rounded-2xl p-8 card-shadow transform transition-all duration-300 hover:shadow-lg"><div class="text-center mb-8"><h1 class="text-[clamp(1.5rem,3vw,2rem)] font-bold text-slate-800">创建账号</h1><p class="text-secondary mt-2">请填写以下信息完成注册</p></div><!-- 注册表单 --><form id="registerForm" class="space-y-6"><!-- 用户名输入 --><div class="space-y-2"><label for="username" class="block text-sm font-medium text-slate-700">用户名</label><div class="relative"><div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"><i class="fa fa-user text-slate-400"></i></div><input type="text" id="username" name="username" requiredclass="w-full pl-10 pr-4 py-3 rounded-lg border border-slate-300 input-focus transition-all duration-200"placeholder="请创建用户名"></div></div><!-- 邮箱输入 --><div class="space-y-2"><label for="email" class="block text-sm font-medium text-slate-700">电子邮箱</label><div class="relative"><div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"><i class="fa fa-envelope text-slate-400"></i></div><input type="email" id="email" name="email" requiredclass="w-full pl-10 pr-4 py-3 rounded-lg border border-slate-300 input-focus transition-all duration-200"placeholder="请输入电子邮箱"></div></div><!-- 密码输入 --><div class="space-y-2"><label for="password" class="block text-sm font-medium text-slate-700">密码</label><div class="relative"><div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"><i class="fa fa-lock text-slate-400"></i></div><input type="password" id="password" name="password" requiredclass="w-full pl-10 pr-10 py-3 rounded-lg border border-slate-300 input-focus transition-all duration-200"placeholder="请创建密码"><button type="button" id="togglePassword" class="absolute inset-y-0 right-0 pr-3 flex items-center text-slate-400 hover:text-slate-600 transition-colors duration-200"><i class="fa fa-eye-slash"></i></button></div></div><!-- 确认密码输入 --><div class="space-y-2"><label for="confirmPassword" class="block text-sm font-medium text-slate-700">确认密码</label><div class="relative"><div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"><i class="fa fa-lock text-slate-400"></i></div><input type="password" id="confirmPassword" name="confirmPassword" requiredclass="w-full pl-10 pr-10 py-3 rounded-lg border border-slate-300 input-focus transition-all duration-200"placeholder="请确认密码"><button type="button" id="toggleConfirmPassword" class="absolute inset-y-0 right-0 pr-3 flex items-center text-slate-400 hover:text-slate-600 transition-colors duration-200"><i class="fa fa-eye-slash"></i></button></div></div><!-- 注册按钮 --><button type="submit" class="w-full bg-primary hover:bg-primary/90 text-white font-medium py-3 px-4 rounded-lg transition-all duration-200 transform hover:scale-[1.02] active:scale-[0.98] focus:ring-4 focus:ring-primary/20">注册</button></form><!-- 登录链接 --><div class="mt-8 text-center"><p class="text-slate-600">已有账号? <a href="login.html" class="font-medium text-primary hover:text-primary/80 transition-colors duration-200">立即登录</a></p></div></div></div><script>// 密码显示/隐藏切换function setupPasswordToggle(toggleId, passwordId) {const toggle = document.getElementById(toggleId);const passwordInput = document.getElementById(passwordId);toggle.addEventListener('click', () => {const type = passwordInput.getAttribute('type') === 'password' ? 'text' : 'password';passwordInput.setAttribute('type', type);toggle.querySelector('i').classList.toggle('fa-eye');toggle.querySelector('i').classList.toggle('fa-eye-slash');});}setupPasswordToggle('togglePassword', 'password');setupPasswordToggle('toggleConfirmPassword', 'confirmPassword');// 表单提交处理const registerForm = document.getElementById('registerForm');registerForm.addEventListener('submit', (e) => {e.preventDefault();const username = document.getElementById('username').value;const email = document.getElementById('email').value;const password = document.getElementById('password').value;const confirmPassword = document.getElementById('confirmPassword').value;// 简单表单验证if (!username.trim() || !email.trim() || !password.trim() || !confirmPassword.trim()) {alert('请填写所有必填字段');return;}// 密码匹配验证if (password !== confirmPassword) {alert('两次输入的密码不一致');return;}// 密码强度验证if (password.length < 6) {alert('密码长度不能少于6个字符');return;}// 这里可以添加实际注册逻辑alert(`注册成功!用户名: ${username}, 邮箱: ${email}`);// 注册成功后跳转到登录页面window.location.href = 'login.html';});</script>
</body>
</html>

忘记密码页面–forgotwassword.html

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>忘记密码</title><script src="https://cdn.tailwindcss.com"></script><link href="https://unpkg.com/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet"><script>tailwind.config = {theme: {extend: {colors: {primary: '#165DFF',secondary: '#6B7280',accent: '#3B82F6',},fontFamily: {inter: ['Inter', 'system-ui', 'sans-serif'],},}}}</script><style type="text/tailwindcss">@layer utilities {.content-auto {content-visibility: auto;}.card-shadow {box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05), 0 8px 10px -6px rgba(0, 0, 0, 0.02);}.input-focus {@apply focus:ring-2 focus:ring-primary/50 focus:border-primary focus:outline-none;}}</style>
</head>
<body class="bg-gradient-to-br from-slate-50 to-slate-100 min-h-screen flex items-center justify-center font-inter p-4"><div class="w-full max-w-md"><!-- 忘记密码卡片 --><div class="bg-white rounded-2xl p-8 card-shadow transform transition-all duration-300 hover:shadow-lg"><div class="text-center mb-8"><h1 class="text-[clamp(1.5rem,3vw,2rem)] font-bold text-slate-800">找回密码</h1><p class="text-secondary mt-2">请输入您的电子邮箱,我们将发送重置密码的链接</p></div><!-- 找回密码表单 --><form id="forgotPasswordForm" class="space-y-6"><!-- 邮箱输入 --><div class="space-y-2"><label for="email" class="block text-sm font-medium text-slate-700">电子邮箱</label><div class="relative"><div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"><i class="fa fa-envelope text-slate-400"></i></div><input type="email" id="email" name="email" requiredclass="w-full pl-10 pr-4 py-3 rounded-lg border border-slate-300 input-focus transition-all duration-200"placeholder="请输入您的电子邮箱"></div></div><!-- 提交按钮 --><button type="submit" class="w-full bg-primary hover:bg-primary/90 text-white font-medium py-3 px-4 rounded-lg transition-all duration-200 transform hover:scale-[1.02] active:scale-[0.98] focus:ring-4 focus:ring-primary/20">发送重置链接</button></form><!-- 登录链接 --><div class="mt-8 text-center"><p class="text-slate-600">想起密码了? <a href="login.html" class="font-medium text-primary hover:text-primary/80 transition-colors duration-200">立即登录</a></p></div></div></div><script>// 表单提交处理const forgotPasswordForm = document.getElementById('forgotPasswordForm');forgotPasswordForm.addEventListener('submit', (e) => {e.preventDefault();const email = document.getElementById('email').value;// 简单表单验证if (!email.trim()) {alert('请输入电子邮箱');return;}// 验证邮箱格式const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;if (!emailRegex.test(email)) {alert('请输入有效的电子邮箱');return;}// 这里可以添加实际发送重置链接的逻辑alert(`重置密码链接已发送至 ${email},请查收邮件`);// 跳转回登录页面window.location.href = 'login.html';});</script>
</body>
</html>

预览登录页面

我需要启动本地Web服务器。我将使用Python的内置HTTP服务器在8000端口运行。

#在代码文件夹下的终端运行
python -m http.server 8000

运行成功后访问 http://localhost:8000/login.html

主界面

在这里插入图片描述

注册界面

在这里插入图片描述

忘记密码界面

在这里插入图片描述

http://www.xdnf.cn/news/16056.html

相关文章:

  • 智能合约安全 - 重入攻击 - 常见漏洞(第一篇)
  • AUTOSAR进阶图解==>AUTOSAR_SWS_COMManager
  • 【JS逆向基础】数据库之MongoDB
  • c#转python第四天:生态系统与常用库
  • 近期工作感想:职业规划篇
  • Web开发 04
  • 【企业架构】TOGAF概念之一
  • Android系统5层架构
  • XSS知识总结
  • kafka生产端和消费端的僵尸实例以及解决办法
  • `MYSQL`、`MYSQL_RES` 和 `MYSQL_FIELD`的含义与使用案例
  • 【硬件】GalaxyTabPro10.1(SM-T520)刷机/TWRP/LineageOS14/安卓7升级全过程
  • 浅谈 Vue 的双向数据绑定
  • Java 字符集(Charset)详解:从编码基础到实战应用,彻底掌握字符处理核心机制
  • 【数据结构】双向循环链表的实现
  • 基于机器视觉的迈克耳孙干涉环自动计数系统设计与实现
  • Node.js:函数、路由、全局对象
  • Docker Compose 配置
  • 如何5分钟快速搭建智能问答系统
  • 详解如何解决Mysql主从复制延迟
  • LINUX720 SWAP扩容;新增逻辑卷;逻辑卷扩容;数据库迁移;gdisk
  • Ajax简单介绍及Axios请求方式的别名
  • 复杂度+包装类型+泛型
  • 统计与大数据分析和数字经济:专业选择指南
  • spring-cloud使用
  • ptmalloc(glibc-2.12.1)整体结构
  • Linux:线程控制
  • 基于SpringBoot+MyBatis+MySQL+VUE实现的医疗挂号管理系统(附源码+数据库+毕业论文+答辩PPT+项目部署视频教程+项目所需软件工具)
  • LeetCode 刷题【8. 字符串转换整数 (atoi), 9. 回文数】
  • 学成在线项目