网页代码

<!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://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet"><script>tailwind.config = {theme: {extend: {colors: {primary: '#165DFF',secondary: '#6B7280',accent: '#3B82F6',light: '#F3F4F6',dark: '#1F2937'},fontFamily: {inter: ['Inter', '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);}.input-focus {@apply focus:ring-2 focus:ring-primary/50 focus:border-primary focus:outline-none;}@keyframes float {0%, 100% { transform: translateY(0); }50% { transform: translateY(-50px); }
}}</style>
</head>
<body class="bg-black font-inter min-h-screen flex items-center justify-center p-4 text-white"><div class="w-full max-w-md"><div class="bg-gradient-to-br from-blue-200 to-blue-400 rounded-2xl p-8 shadow-xl transition-all duration-300 animate-float duration-2000 cubic-bezier(0.2, 0.8, 0.2, 1)"><div class="text-center mb-8"><h1 class="text-[clamp(1.5rem,3vw,2rem)] font-bold text-white">用户登录</h1><p class="text-blue-100 mt-2">欢迎回来,请登录您的账号</p></div><form id="loginForm" class="space-y-6"><div><label for="username" class="block text-sm font-medium text-blue-100 mb-1">用户名</label><div class="relative"><span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-400"><i class="fa fa-user"></i></span><input type="text" id="username" name="username" requiredclass="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg input-focus transition-all"placeholder="请输入用户名"></div></div><div><div class="flex justify-between items-center mb-1"><label for="password" class="block text-sm font-medium text-blue-100">密码</label><a href="#" class="text-sm text-primary hover:text-primary/80 transition-colors" id="forgotPassword">忘记密码?</a></div><div class="relative"><span class="absolute inset-y-0 left-0 flex items-center pl-3 text-gray-400"><i class="fa fa-lock"></i></span><input type="password" id="password" name="password" requiredclass="w-full pl-10 pr-10 py-3 border border-gray-300 rounded-lg input-focus transition-all"placeholder="请输入密码"><button type="button" id="togglePassword" class="absolute inset-y-0 right-0 flex items-center pr-3 text-gray-400 hover:text-gray-600 transition-colors"><i class="fa fa-eye"></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 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-blue-100">还没有账号? <a href="#" class="text-primary font-medium hover:text-primary/80 transition-colors" 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 || !password) {alert('请输入用户名和密码');return;}// 这里可以添加实际的登录逻辑alert(`登录成功!用户名: ${username}`);});// 忘记密码链接document.getElementById('forgotPassword').addEventListener('click', (e) => {e.preventDefault();alert('忘记密码功能将在后续版本中实现');});// 注册链接document.getElementById('registerLink').addEventListener('click', (e) => {e.preventDefault();alert('注册功能将在后续版本中实现');});// 添加输入框获得焦点时的动画效果const inputs = document.querySelectorAll('input');inputs.forEach(input => {input.addEventListener('focus', () => {input.parentElement.classList.add('scale-[1.01]');input.parentElement.style.transition = 'transform 0.2s ease';});input.addEventListener('blur', () => {input.parentElement.classList.remove('scale-[1.01]');});});</script>
</body>
</html>

生成效果

核心部分

文档声明与根元素

- <!DOCTYPE html> 声明文档类型为HTML5
- <html lang="zh-CN"> 定义根元素并指定页面语言为简体中文

头部区域<head>:包含页面数据及自愿引用

主题内容<body>:使用Flex布局实现内容居中,包含登录卡片容器

核心组件结构

标题区域 :包含页面标题和欢迎文本

登录表单 :包含用户名/密码输入框、表单验证和提交按钮

辅助链接 :包含"忘记密码"和"立即注册"功能链接

交互脚本 :位于页面底部,处理表单提交、密码显示切换等交互逻辑

部分解释

1、头部文档(head)

`index.html` 的头部区域定义了页面元数据和外部资源引用:

使用 <meta charset="UTF-8"> 指定字符编码

通过 <meta name="viewport"> 设置响应式视口

引入Tailwind CSS和Font Awesome图标库

配置Tailwind自定义主题(颜色、字体等)

定义浮动动画关键帧和工具类

2、页面主体(body)

主体部分采用黑色背景( bg-black )和白色文字( text-white ),通过Flex布局将内容垂直和水平居中:<body class="bg-black font-inter min-h-screen flex items-center justify-center p-4 text-white">

3、登录卡片容器

核心登录区域使用蓝色渐变背景( bg-gradient-to-br from-blue-200 to-blue-400 )和浮动动画( animate-float ):<div class="bg-gradient-to-br from-blue-200 to-blue-400 rounded-2xl p-8 shadow-xl transition-all duration-300 animate-float duration-2000 cubic-bezier(0.2, 0.8, 0.2, 1)">

rounded-2xl 创建圆角效果

shadow-xl 添加阴影深度

animate-float 应用上下浮动动画

4、表单结构

登录表单包含以下元素:

用户名输入框:带有用户图标和必填验证

密码输入框:带有锁图标、显示/隐藏切换功能

"忘记密码"链接:点击触发提示框

登录按钮:带有悬停缩放效果

注册链接:点击触发提示框

5、响应式设计

页面通过以下方式实现响应式布局:

使用 max-w-md 限制卡片最大宽度

clamp() 函数动态调整标题大小

百分比宽度和内边距适应不同屏幕尺寸

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92673.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92673.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/92673.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM原理及其机制(二)

目录 一 . 垃圾回收机制&#xff08;GC&#xff09; 二 . 垃圾回收的具体步骤 &#xff08;1&#xff09;先找出谁是垃圾 方案一&#xff1a;引用计数 方案二&#xff1a;可达性分析 &#xff08;2&#xff09;释放垃圾的内存空间 方案一&#xff1a;标记清除 方案二…

Solo:基于 zkHE 的身份验证协议,构建 Web3 可信匿名身份层

“Solo 正在基于其独创的 zkHE 架构&#xff0c;构建一套“可信匿名”的链上身份系统&#xff0c;有望打破长期困扰 Web3 的“不可能三角”&#xff0c;即在隐私保护、身份唯一性与去中心化可验证性之间实现兼得。”前不久&#xff0c;Web3 身份层项目 Solo 宣布完成 120 万美元…

【Excel函数】将数据非空的字段筛选出来放在新列

一、需求描述 将对应数据不为空的字段筛选出来放在新的列里 二、解析 IFERROR(INDEX(B$2:B$10,SMALL(IF(C$2:C$10<>"",ROW(C$2:C$10)-ROW(C$2)1),ROW(A1))),"") 1. IF(C$2:C$10<>"", ROW(C$2:C$10)-ROW(C$2)1) 作用&#xff1a;…

【unity游戏开发入门到精通——组件篇】unity的粒子系统力场 (Particle System Force Field)实现如旋风、吸引力、风吹效果等

文章目录前言一、参数介绍二、Particle System Force Field 的核心特性三、如何使用1、粒子系统开启外力选项2、然后再添加粒子系统力场 (Particle System Force Field)即可参考专栏推荐完结前言 Unity的粒子系统是一个非常强大的工具&#xff0c;可以用来创建各种动态效果&am…

JS逆向基础( AES 解密密文WordArray和Uint8Array实战②)

1. Uint8Array 就像「快递柜」 每个格子固定放「1 瓶饮料」(1 字节 = 8 位,范围 0-255 就像饮料编号) 比如装了 3 瓶:可乐(编号 255)、雪碧(10)、矿泉水(0) 这是超市通用的标准货架,任何工具(JS 内置功能)都认识这种摆放方式 用途:运输、存储所有二进制东西(图片…

论文阅读:《针对多目标优化和应用的 NSGA-II 综述》一些关于优化算法的简介

前言 提醒&#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布&#xff0c;其中引用内容都会使用链接表明出处&#xff08;如有侵权问题&#xff0c;请及时联系&#xff09;。 其中内容多为一次书写&#xff0c;缺少检查与订正&#xff0c;如有问题或其他拓展…

Elasticsearch(ES)安装

docker下安装ES 拉取镜像docker pull elasticsearch:7.4.0 创建文件夹 权限赋值 chmod -R 777 /usr/local/docker/es 创建配置 #可访问IP http.host: 0.0.0.0 # 跨域 http.cors.enabled: true http.cors.allow-origin: "*" 编写脚本并赋权 首先先返回上一级目录&…

Pycharm、Python安装及配置小白教程

本篇博客主要介绍了如何使用工具软件快速安装Pycharm和Python并完成基础配置。 目录 一、Python与Pycharm是什么&#xff1f; 二、安装工具软件 三、安装Python 四、安装Pycharm 五、配置Pycharm 1. 基础设置 2. 配置解释器 一、Python与Pycharm是什么&#xff1f; …

Redis数据库入门教程

Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、基于内存的高性能键值存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。本教程将带你从零开始全面学习Redis&#xff0c;涵盖基础概念、安装配置、数据结构、持久化机制以及与Python的交互等内容…

工业仪表识别(一)环境安装

仪表识别环境安装 &#xff11;&#xff0e;cuda cuda 11.8 intall&#xff08;cuda11.8、cuda12.6按照需求安装&#xff09; ref: https://developer.nvidia.com/cuda-11-8-0-download-archive?target_osLinux&target_archx86_64&DistributionUbuntu&target_vers…

闲庭信步使用图像验证平台加速FPGA的开发:第三十四课——车牌识别的FPGA实现(6)叠加车牌识别的信息

&#xff08;本系列只需要modelsim即可完成数字图像的处理&#xff0c;每个工程都搭建了全自动化的仿真环境&#xff0c;只需要双击top_tb.bat文件就可以完成整个的仿真&#xff0c;大大降低了初学者的门槛&#xff01;&#xff01;&#xff01;&#xff01;如需要该系列的工程…

Windows上用于跨平台开发的环境工具

1. MSYS2&#xff08;Minimal SYStem 2&#xff09; 一款模拟Unix环境的软件&#xff0c;可以执行unix命令。通过pacman管理工具&#xff0c;类似Ubuntu上apt-get&#xff0c;RedHat中的yum。 MSYS2最大好处就是能够在Windows上轻松编译一些由Unix环境工具链开发的工程&#…

【硬件-笔试面试题】硬件/电子工程师,笔试面试题-15,(知识点:DC-DC电源,BUCK电路,铁损,铜损)

目录 1、题目 2、解答 选项 A 选项 B 选项 C 选项 D 3、相关知识点 一、纹波 二、感量&#xff08;电感量L&#xff09; 三、开关频率f 四、铁损 五、铜损 题目汇总版&#xff1a; 【硬件-笔试面试题】硬件/电子工程师&#xff0c;笔试面试题汇总版&#xff0c;持…

Ethereum: 从 1e+21 到千枚以太币:解密 Geth 控制台的余额查询

大家好今天&#xff0c;我们来聊一个新手在接触以太坊节点时经常会遇到的场景。想象一下&#xff0c;我们成功运行了一个私有以太坊节点&#xff0c;并尝试查询一个账户的余额&#xff0c;然后我们看到了这样一个返回结果&#xff1a;1e21。 这是什么意思&#xff1f;是出错了&…

2025最新软件测试面试八股文(含答案+文档)

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、什么是POM&#xff0c;为什么要使用它&#xff1f;POM是Page Object Model的简称&#xff0c;它是一种设计思想&#xff0c;而不是框架。大概的意思是&#xff…

表格数据处理-TabNet模型使用说明(模型构建+SHAP)

一、模型介绍 论文为《TabNet: Attentive Interpretable Tabular Learning》发表于2021年&#xff0c;属于Google Cloud AI。该研究针对表格数据提出了一种新的深度神经网络&#xff08;DNN&#xff09;架构TabNet&#xff0c;旨在解决传统深度学习在表格数据上表现不如决策树模…

数据集成难在哪?制造企业该怎么做?

目录 一、为什么你的数据集成总失败&#xff1f; 1.数据没有统一标准 2.数据 “断点多”&#xff0c;打通成本高 3.数据 “用不起来”&#xff0c;价值难落地 二、数据集成的正确做法是什么&#xff1f; 第一步&#xff1a;明确 “集成为了谁”— 用业务目标倒推数据需求…

Datawhale AI数据分析 作业2

学生考试表现影响因素数据集第一步&#xff1a;数据概览与清洗Prompt 1:加载StudentPerformanceFactors.csv文件&#xff0c;并显示前5行数据以及各列的数据类型和非空值数量&#xff0c;检查是否存在缺失值。处理缺失值是数据预处理的重要一步。对于您提到的缺失值&#xff1a…

Flowable 与 Spring Boot 深度集成:从环境搭建到平台构建

在前三篇文章中&#xff0c;我们依次认识了 Flowable 的基础概念、用 Modeler 设计流程&#xff0c;以及通过 API 控制流程运行。但在实际项目中&#xff0c;我们更需要将 Flowable 与 Spring Boot 深度融合&#xff0c;构建完整的工作流平台。本文将从环境配置、设计器集成、权…

Jenkins最新版本的安装以及集成Allure生成测试报告

目录 Jenkins的安装 将上面的目录添加到系统环境变量中 为Jenkins配置密码 创建一个用户&#xff0c;用于登录jenkins 为Jenkins安装Allure插件 几个大坑 使用jenkins集成python测试项目 Jenkins的安装 Jenkins官方网址 Jenkins 点击download 点击 past Release选择你想要下载…