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

复习前端html,css,javascript

搭建简单的登录页面,并进行润色

 

然后给与解释

denglu.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> <!-- 页面标题 --><link rel="stylesheet" href="denglu.css"> <!--  内联css -->
</head><body> <!-- 页面内容 --><div class="login-card"> <!-- 通用容器 --><h1>登录</h1> <!-- 一级标题 --><form id="loginForm"> <!-- 表单容器:用于收集用户输入并提交数据 --><input type="text" id="username" placeholder="用户名" required> <!-- 文本输入框 --><input type="password" id="password" placeholder="密码" required> <!-- 密码输入框 --><div class="form-row"><label><input type="checkbox"> 记住我</label> <!-- 复选框 --><a href="#">忘记密码?</a> <!-- 超链接 --></div><button type="submit">登录</button> <!-- 按钮 --><p>还没有账号? <a href="#">立即注册</a></p> <!-- 段落标签:用于显示辅助文本信息 --></form></div><script><!-- 脚本容器:包含JavaScript代码,处理表单提交和交互逻辑 -->document.getElementById('loginForm').addEventListener('submit', function (e) {e.preventDefault();const username = document.getElementById('username').value;const password = document.getElementById('password').value;if (username && password) alert('登录成功');else alert('请输入用户名和密码');});</script>
</body></html>

denglu.css

/* 全局样式 */
* {margin: 0;padding: 0;box-sizing: border-box;font-family: -apple-system, BlinkMacSystemFont, sans-serif;/* 使用系统字体,提升性能和一致性 */
}body {background: #f5f5f7;/* 背景颜色 */min-height: 100vh;/* 确保页面至少占满整个视口高度 */display: flex;justify-content: center;/* 水平居中 */align-items: center;/* 垂直居中 */padding: 20px;/* 防止内容紧贴屏幕边缘 */
}/* 登录卡片 */
.login-card {background: white;/* 卡片背景颜色 */width: 100%;max-width: 360px;padding: 40px;border-radius: 12px;/* 圆角设计,柔和视觉效果 */box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);/* 卡片阴影 */
}h1 {text-align: center;color: #1d1d1f;font-size: 24px;margin-bottom: 30px;font-weight: 500;
}/* 表单样式 */
input {width: 100%;padding: 14px;margin-bottom: 16px;border: 1px solid #e2e2e2;border-radius: 8px;font-size: 16px;
}input:focus {outline: none;border-color: #0071e3;
}.form-row {display: flex;justify-content: space-between;align-items: center;margin-bottom: 24px;font-size: 14px;color: #6e6e73;
}.form-row a {color: #0071e3;text-decoration: none;
}/* 按钮样式 */
button {width: 100%;padding: 14px;background: #0071e3;color: white;border: none;border-radius: 8px;font-size: 16px;font-weight: 500;cursor: pointer;margin-bottom: 20px;
}/* 按钮悬停效果:提供交互反馈 */
button:hover {background: #0066cc;
}/* 底部链接 */
.login-card p {text-align: center;font-size: 14px;color: #6e6e73;
}.login-card p a {color: #0071e3;text-decoration: none;
}/* 响应式调整 */
@media (max-width: 375px) {.login-card {padding: 30px 20px;}
}

denglu.js

// 等待DOM加载完成
document.addEventListener('DOMContentLoaded', function () {// 事件监听// 获取DOM元素const loginForm = document.getElementById('loginForm');const passwordInput = document.getElementById('password');const togglePassword = document.querySelector('.toggle-password');const eyeIcon = togglePassword.querySelector('i');// 密码可见性切换togglePassword.addEventListener('click', function() {const type = passwordInput.getAttribute('type') === 'password' ? 'text' : 'password';passwordInput.setAttribute('type', type);eyeIcon.classList.toggle('fa-eye');eyeIcon.classList.toggle('fa-eye-slash');});// 表单提交处理loginForm.addEventListener('submit', function(e) {e.preventDefault();  // 阻止默认行为// 获取表单数据const username = document.getElementById('username').value.trim();const password = passwordInput.value.trim();const remember = document.querySelector('input[name="remember"]').checked;// 简单的表单验证if (!username) {alert('请输入用户名');return;}if (!password) {alert('请输入密码');return;}// 这里可以添加AJAX请求发送到服务器// 模拟登录过程console.log('登录信息:', {username,password,remember});alert('登录成功!欢迎回来,' + username);//使用弹窗提供操作结果反馈。});// 添加键盘事件处理loginForm.addEventListener('keydown', function(e) {if (e.key === 'Enter') {loginForm.dispatchEvent(new Event('submit'));}});
});

http://www.dtcms.com/a/290603.html

相关文章:

  • 一个适合MCU的分级菜单框架
  • 广播(Broadcast)和组播(Multicast)对比
  • docker磁盘空间不足解决办法
  • 【Qt Designer使用快捷键】
  • 【iOS】锁[特殊字符]
  • 18 零基础学webUI | Controlnet精讲(04)-图像风格转换类条件控图详解
  • 3、Spring AI_DeepSeek模型-多轮对话
  • Java在POJO中标记字段不需要被持久化到数据库,以及标记字段在对象序列化时忽略
  • 2025最新版IntelliJ IDEA Ultimate for Mac专业版安装使用指南
  • websocket和https的区别
  • 多尺度卷积模型:Inception块
  • 基于单片机儿童滞留车内防滞留系统
  • Go中的UDP编程:实战指南与使用场景
  • C语言重难点小复习(结构体/联合体/枚举)
  • 字节内部流传的数据分析手册
  • 浙江宁波,天一阁古籍资源(5262种,PDF格式,1.26T)
  • Redis的五大基本数据类型
  • Linux | C Shell 与 Bash 的差异 / 环境变量配置问题解析
  • 数学公式Latex语法快速入门
  • RANsemi 推出适用于 Split 7.2 Open RAN 无线电单元的即插即用基带板
  • ps aux 和 ps -ef
  • RNS805 是针对 O-RAN 联盟兼容 Cat A O-RU 优化的 SoC,符合 3GPP 5G/4G 标准。
  • 模式识别与机器学习课程笔记(1):数学基础
  • 【深度学习新浪潮】如何系统性地学习扩散模型?
  • Elasticsearch 是 NVIDIA Enterprise AI Factory 验证设计中推荐的向量数据库
  • WAMP配置局域网https服务
  • 旋转目标检测(Rotated Object Detection)技术概述
  • 漏洞扫描 + 渗透测试:双轮驱动筑牢网络安全防线
  • Pandas - JSON格式数据操作实践
  • iOS —— 3Gshare项目总结与思考