使用html写一个能发起请求的登录界面

目录

head部分

内联样式部分

body部分

login-form类的div

myModal类的div id

script部分

总的代码

界面与操作演示


<!DOCTYPE html>
<html lang="en">
<!DOCTYPE html>

这是文档类型声明,告诉浏览器这是一个 HTML文档。 

<html lang="en">

这是 HTML 文档的根元素,lang="en" 表明文档的主要语言是英语。

head部分

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Login Page</title><style>body {font-family: Arial, sans-serif;display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #f0f0f0;}.login-form {padding: 20px;border: 1px solid #ccc;border-radius: 5px;background-color: white;width: 300px;}.form-group {display: flex;flex-direction: row;margin-bottom: 10px;}.form-group label {width: 100px;text-align: right;padding-right: 10px;}.form-group input {flex-grow: 1;}/* Modal styles */.modal {display: none; /* Hidden by default */position: fixed; /* Stay in place */z-index: 1; /* Sit on top */left: 0;top: 0;width: 100%; /* Full width */height: 100%; /* Full height */overflow: auto; /* Enable scroll if needed */background-color: rgb(0,0,0); /* Fallback color */background-color: rgba(0,0,0,0.4); /* Black w/ opacity */}/* Modal Content/Box */.modal-content {background-color: #fefefe;margin: 15% auto; /* 15% from the top and centered */padding: 20px;border: 1px solid #888;width: 80%; /* Could be more or less, depending on screen size */}/* The Close Button */.close {color: #aaa;float: right;font-size: 28px;font-weight: bold;}.close:hover,.close:focus {color: black;text-decoration: none;cursor: pointer;}</style>
</head>
<head>

表示head部分的开始,这里包含元信息,如字符集、视口设置和样式等信息。

    <meta charset="UTF-8">

指定文档的字符编码为 UTF-8(一种常用的多字节编码格式)

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

设置视口的宽度等于设备的宽度,并且初始缩放比例为 1,使得网页在移动设备(手机端和pc端都能正常显示)上也能正确显示。

 <title>Login Page</title>

title标签用于设置网页的标题,显示在浏览器标签上。

内联样式部分

    <style>

style表示内联样式表部分的开始,这里定义了页面的样式,里面会有很多类(类似于c++中的类)帮助我们设置字体的大小,格式等。

        body {font-family: Arial, sans-serif;display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #f0f0f0;}

body用于设置整个页面的样式:

font-family: 页面使用的字体。

display: flex: 使用弹性盒子布局(使字体或者图标动态变化,使它们在任何屏幕尺寸下都能表现良好。)

justify-content: center: 内容居中对齐。

align-items: center: 垂直居中对齐。

height: 100vh: 高度为视口高度。

background-color: 背景颜色。

        .form-group label {width: 100px;text-align: right;padding-right: 10px;}

form-group label 样式(类):

width: 宽度。

text-align: right: 文本右对齐。

padding-right: 右边距。

        .form-group input {flex-grow: 1;}

flex-grow: 1: 填充剩余空间。

        /* Modal styles */.modal {display: none; /* Hidden by default */position: fixed; /* Stay in place */z-index: 1; /* Sit on top */left: 0;top: 0;width: 100%; /* Full width */height: 100%; /* Full height */overflow: auto; /* Enable scroll if needed */background-color: rgb(0,0,0); /* Fallback color */background-color: rgba(0,0,0,0.4); /* Black w/ opacity */}

.modal 类的样式:

display: none: 默认不显示。

position: fixed: 固定定位。

z-index: 层叠级别。

lefttop: 位置。

widthheight: 宽高。

overflow: 溢出处理。

background-color: 背景颜色。

        /* Modal Content/Box */.modal-content {background-color: #fefefe;margin: 15% auto; /* 15% from the top and centered */padding: 20px;border: 1px solid #888;width: 80%; /* Could be more or less, depending on screen size */}

.modal-content 类的样式:

background-color: 背景颜色。

margin: 外边距。

padding: 内边距。

border: 边框样式。

width: 宽度。

        /* The Close Button */.close {color: #aaa;float: right;font-size: 28px;font-weight: bold;}

.close 类的样式:

color: 字体颜色。

float: right: 浮动到右边。

font-size: 字体大小。

font-weight: 字体粗细。

        .close:hover,.close:focus {color: black;text-decoration: none;cursor: pointer;}

定义 .close 类的悬停和聚焦状态样式:

color: 字体颜色。

text-decoration: 文本装饰。

cursor: 鼠标光标。

    </style>
</head>

style表示内联样式部分的结束,head表示head部分的结束。

body部分

<body><div class="login-form"><h2>Login</h2><form id="loginForm"><div class="form-group"><label for="username">Username:</label><input type="text" id="username" name="username" required></div><div class="form-group"><label for="password">Password:</label><input type="password" id="password" name="password" required></div><button type="submit">Login</button></form></div><!-- Modal --><div id="myModal" class="modal"><!-- Modal content --><div class="modal-content"><span class="close">&times;</span><p>登录成功</p></div></div>
<body>

表示body部分的开始。

login-form类的div

    <div class="login-form">

<div> 标签是一种常用的容器标签,用于对文档中的部分或整个内容进行分块,并对其应用样式或进行布局。

这里div表示接下来开始是.login-form 类的 div

        <h2>Login</h2>

h2表示这是一个二级标题,其中Login会显示在网页上。

  <form id="loginForm">

在HTML中,<form> 标签用于创建一个表单,用户可以通过这个表单提交信息。

id 属性是 <form> 标签的一个重要属性,它用于唯一标识一个表单元素,在一个文档中只出现一次而class可以多次使用。

            <div class="form-group"><label for="username">Username:</label><input type="text" id="username" name="username" required></div>

定义用户名输入框(属于form-group类):

label: 标签。for 属性的值 "username" 与后面的 <input> 的 id 属性值相匹配,表示这个标签与 <input> 字段相关联。

input: 输入框,用于接收用户输入的文本数据,type里的text表示要输入文本name="username" 用于在表单提交时标识这个输入字段的数据。要求必填(required)。

            <div class="form-group"><label for="password">Password:</label><input type="password" id="password" name="password" required></div>

label: 标签。

input: 输入框,类型为密码,要求必填。

            <button type="submit">Login</button>

提交按钮,用于提交表单。

<button> 标签用于创建一个按钮,用户可以点击这个按钮来触发某种操作。

submit:表示这是一个提交按钮,当用户点击这个按钮时,会触发表单的提交。

Login是文本,用户看到的按钮上的内容。

        </form>

结束登录表单。

    </div>

结束 .login-form 类的 div

myModal类的div id

    <!-- Modal --><div id="myModal" class="modal">

开始模态框(弹窗)的 div,ID 为 myModal

        <!-- Modal content --><div class="modal-content">

开始模态框的内容区。类为modal-content。

            <span class="close">&times;</span>

定义关闭按钮。

<span> 标签是一个内联元素,用于对文档中的部分内容进行分组,并应用样式或进行JavaScript操作。

&times; 是一个HTML实体,表示乘号(×),在这里用作关闭按钮的图标。

            <p>登录成功</p>

定义模态框内的消息文本。

        </div>

结束模态框的内容区。

    </div>

结束模态框的 div

script部分

 <script>// Get the modalvar modal = document.getElementById("myModal");// Get the button that opens the modalvar btn = document.getElementById("loginForm").querySelector("button");// Get the <span> element that closes the modalvar span = document.getElementsByClassName("close")[0];// When the user clicks the button, open the modal btn.addEventListener('click', function(event) {event.preventDefault();  // 阻止表单默认提交行为modal.style.display = "block";});// When the user clicks on <span> (x), close the modalspan.onclick = function() {modal.style.display = "none";}// When the user clicks anywhere outside of the modal, close itwindow.onclick = function(event) {if (event.target == modal) {modal.style.display = "none";}}</script>
</body>
</html>
    <script>

开始 <script> 标签,用于编写 JavaScript 代码。

        // Get the modalvar modal = document.getElementById("myModal");

定义一个变量modal,获取模态框元素。

这行代码使用 document.getElementById 方法获取页面中 ID 为 "myModal" 的元素,并将其赋值给变量 modal

getElementById 方法返回页面中具有指定 ID 的元素。

var btn = document.getElementById("loginForm").querySelector("button");

这行代码首先获取 ID 为 "loginForm" 的元素,然后使用 querySelector 方法查找第一个 <button> 元素,并将其赋值给变量 btn

querySelector 方法返回匹配指定 CSS 选择器的第一个元素。

var span = document.getElementsByClassName("close")[0];

这行代码使用 document.getElementsByClassName 方法获取类名为 "close" 的所有元素,并选取第一个元素赋值给变量 span

getElementsByClassName 方法返回一个包含所有具有指定类名的元素的 HTMLCollection 对象。

btn.addEventListener('click', function(event) {event.preventDefault();  // 阻止表单默认提交行为modal.style.display = "block";
});

这代码为按钮添加了一个点击事件监听器。

当用户点击按钮时,事件监听器中的回调函数会被执行。

event.preventDefault() 方法阻止了按钮默认的提交行为。

modal.style.display = "block"; 将模态框的 display CSS 属性设置为 "block",使其可见。

span.onclick = function() {modal.style.display = "none";
}

这行代码为关闭按钮添加了一个点击事件监听器。

当用户点击关闭按钮时,事件监听器中的回调函数会被执行。

modal.style.display = "none"; 将模态框的 display CSS 属性设置为 "none",使其不可见。

window.onclick = function(event) {if (event.target == modal) {modal.style.display = "none";}
}

这行代码为整个窗口添加了一个点击事件监听器。

当用户在窗口的任意位置点击时,事件监听器中的回调函数会被执行。

event.target 返回实际触发事件的目标元素。

如果点击的目标元素是模态框本身,则关闭模态框。

    </script>

结束 <script> 标签。

</body>

结束 <body> 部分。

</html>

结束整个 HTML 文档。

总的代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Login Page</title><style>body {font-family: Arial, sans-serif;display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #f0f0f0;}.login-form {padding: 20px;border: 1px solid #ccc;border-radius: 5px;background-color: white;width: 300px;}.form-group {display: flex;flex-direction: row;margin-bottom: 10px;}.form-group label {width: 100px;text-align: right;padding-right: 10px;}.form-group input {flex-grow: 1;}/* Modal styles */.modal {display: none; /* Hidden by default */position: fixed; /* Stay in place */z-index: 1; /* Sit on top */left: 0;top: 0;width: 100%; /* Full width */height: 100%; /* Full height */overflow: auto; /* Enable scroll if needed */background-color: rgb(0,0,0); /* Fallback color */background-color: rgba(0,0,0,0.4); /* Black w/ opacity */}/* Modal Content/Box */.modal-content {background-color: #fefefe;margin: 15% auto; /* 15% from the top and centered */padding: 20px;border: 1px solid #888;width: 80%; /* Could be more or less, depending on screen size */}/* The Close Button */.close {color: #aaa;float: right;font-size: 28px;font-weight: bold;}.close:hover,.close:focus {color: black;text-decoration: none;cursor: pointer;}</style>
</head>
<body><div class="login-form"><h2>Login</h2><form id="loginForm"><div class="form-group"><label for="username">Username:</label><input type="text" id="username" name="username" required></div><div class="form-group"><label for="password">Password:</label><input type="password" id="password" name="password" required></div><button type="submit">Login</button></form></div><!-- Modal --><div id="myModal" class="modal"><!-- Modal content --><div class="modal-content"><span class="close">&times;</span><p>登录成功</p></div></div><script>// Get the modalvar modal = document.getElementById("myModal");// Get the button that opens the modalvar btn = document.getElementById("loginForm").querySelector("button");// Get the <span> element that closes the modalvar span = document.getElementsByClassName("close")[0];// When the user clicks the button, open the modal btn.addEventListener('click', function(event) {event.preventDefault();  // 阻止表单默认提交行为modal.style.display = "block";});// When the user clicks on <span> (x), close the modalspan.onclick = function() {modal.style.display = "none";}// When the user clicks anywhere outside of the modal, close itwindow.onclick = function(event) {if (event.target == modal) {modal.style.display = "none";}}</script>
</body>
</html>

界面与操作演示

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

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

相关文章

Spring Boot 中的拦截器 Interceptors

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 前言 Spring Boot中的拦截器&#xff08;Interceptor&#xff09;是一种用于拦截和处理HTTP请求的机制&#xff0c;它基于Spring MVC框架中的HandlerInterceptor接口实现。拦截器允许在请求到达控制器&#…

ACL(Access Control List)访问控制列表

目录 ACL 访问控制列表 ACL分类 ACL的组成 ACL匹配机制 ACL调用方式 实验配置 不允许PC1访问PC4 只允许PC1访问PC4 高级ACL 基本概念 实验配置 限制ping 实验配置 限制DNS 基于时间的ACL 实验配置 ACL 访问控制列表 根据一系列不同的规则&#xff0c;设备根据这…

基础篇:667的大题题型与应对策略

通过本节&#xff0c;你将学习到&#xff1a; 667分析题的考查方向与基本题型667分析题的两种解决策略 667分析题的三大基本题型 首先&#xff0c;通过回顾667科目分析题的真题&#xff08;2021-2024年&#xff09;&#xff0c;我根据题目特点将其归纳为三个主要类别。这样的…

Python:import语句的使用(详细解析)(一)

相关阅读 Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html?spm1001.2014.3001.5482 import语句是Python中一个很重要的机制&#xff0c;允许在一个文件中访问另一个文件的函数、类、变量等&#xff0c;本文就将进行详细介绍。 在具体谈论import语句前&a…

使用ESPnet的 setup_anaconda.sh安装脚本一步到位,配置conda虚拟环境

使用ESPnet的 setup_anaconda.sh 安装脚本一步到位&#xff0c;配置conda虚拟环境 前言 ESPnet&#xff08;End-to-End Speech Processing Toolkit&#xff09;是一款用于语音识别、语音合成等任务的开源端到端语音处理工具包。为了在不同系统上快速配置ESPnet开发环境&#…

Linux复习--Linux服务管理类(SSH服务、DHCP+FTP、DNS服务、Apache服务、Nginx服务、HTTP状态码)

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、SSH服务 1、问题引出 哪些设置能够提升SSH远程管理的安全等级&#xff1f; 2、SSH的登录验证方式-口令登录 3、SSH的登录验证方式-密钥登录 4、…

【rust/egui/android】在android中使用egui库

文章目录 说在前面AndroidStudio安装编译安装运行问题 说在前面 操作系统&#xff1a;windows11java版本&#xff1a;23android sdk版本&#xff1a;35android ndk版本&#xff1a;22rust版本&#xff1a; AndroidStudio安装 安装AndroidStudio是为了安装sdk、ndk&#xff0c;…

Python编写的贪吃蛇小游戏

安装包 pip install pygame完整代码 import pygame import randompygame.init()# 定义颜色 white (255, 255, 255) black (0, 0, 0) red (213, 50, 80) green (0, 255, 0) blue (50, 153, 213)# 定义屏幕大小 dis_width 800 dis_height 600dis pygame.display.set_mo…

探索TOGAF理论的实践应用:企业数字化转型的深度指南

数字化转型的迫切性与路径选择 随着全球化进程和技术革命的加速&#xff0c;企业正面临前所未有的挑战和机遇。数字化转型已成为企业保持竞争力、创新业务模式、优化客户体验的核心手段。然而&#xff0c;企业在实施数字化转型时&#xff0c;往往面临路径不清、技术与业务脱节…

win系统网络重置

重置网络命令&#xff1a;netsh winsock reset 输入winR 调用运行窗口&#xff0c;回车 输入重置网络命令&#xff1a;netsh winsock reset 注意空格

在Stable Diffusion WebUI中安装SadTalker插件时几种错误提示的处理方法

SD中的插件一般安装比较简单&#xff0c;但也有一些插件安装会比较难。比如我在安装SadTalker时&#xff0c;就遇到很多问题&#xff0c;一度放弃了&#xff0c;后来查了一些网上攻略&#xff0c;自己也反复查看日志&#xff0c;终于解决&#xff0c;不吐不快。 一、在Stable …

15分钟学 Python :编程工具 Idea 和 vscode 中配置 Python ( 补充 )

编程工具配置 Python 在 IDE 和 VSCode 中 在编程学习的过程中&#xff0c;选择合适的开发工具至关重要。本文将详细介绍在两种流行的IDE&#xff08;IntelliJ IDEA 和 Visual Studio Code&#xff09;中如何配置Python环境&#xff0c;帮助你更高效地进行Python开发。 一、编…

基于SSM的出租车租赁管理系统的设计与实现

文未可获取一份本项目的java源码和数据库参考。 1 选题的背景 现代社会&#xff0c;许多个人、家庭&#xff0c;因为生活、工作方式的改变&#xff0c;对汽车不再希望长期拥有&#xff0c;取而代之的是希望汽车能“召之即…

开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践指南)

DotNet Exercises介绍 DotNetGuide专栏C#/.NET/.NET Core编程常用语法、算法、技巧、中间件、类库、工作业务实操练习集&#xff0c;配套详细的文章教程讲解&#xff0c;助你快速掌握C#/.NET/.NET Core中各种编程常用语法、算法、技巧、中间件、类库、工作业务实操等等。 GitH…

【Spring Boot 入门二】Spring Boot中的配置文件 - 掌控你的应用设置

一、引言 在上一篇文章中&#xff0c;我们开启了Spring Boot的入门之旅&#xff0c;成功构建了第一个Spring Boot应用。我们从环境搭建开始&#xff0c;详细介绍了JDK的安装以及IDE的选择与配置&#xff0c;然后利用Spring Initializr创建了项目&#xff0c;分析了项目结构&am…

黑马linux笔记(转载)

学习链接 视频链接&#xff1a;黑马程序员新版Linux零基础快速入门到精通 原文链接&#xff1a;黑马程序员新版Linux零基础快速入门到精通——学习笔记 黑马Linux笔记 文章目录 学习链接01初识Linux1.1、操作系统概述1.1.1、硬件和软件1.1.2、操作系统1.1.3、常见操作系统 1.…

SSM人才信息招聘系统-计算机毕业设计源码28084

摘要 本研究旨在基于Java和SSM框架设计并实现一个人才信息招聘系统&#xff0c;旨在提升招聘流程的效率和精准度。通过深入研究Java和SSM框架在Web应用开发中的应用&#xff0c;结合人才招聘领域的需求&#xff0c;构建了一个功能完善、稳定高效的招聘系统。利用SSM框架的优势&…

数据订阅与消费中间件Canal 服务搭建(docker)

MySQL Bin-log开启 进入mysql容器 docker exec -it mysql5.7 bash开启mysql的binlog cd /etc/mysql/mysql.conf.dvi mysqld.cnf #在文件末尾处添加如下配置&#xff08;如果没有这个文件就创建一个&#xff09; [mysqld] # 开启 binlog log-binmysql-bin #log-bin/var/lib/mys…

CSP-J模拟赛三补题报告

前言 挂了110pts( ⇑ \Uparrow ⇑ \hspace{14em} 有史以来最大傻逼 T1&#xff1a; 100 p t s \color{green}100pts 100pts T2: 100 p t s → 80 p t s \color{green}100pts\color{yellow}\rightarrow\color{red}80pts 100pts→80pts T3: 100 p t s → 10 p t s \color{gre…

k8s架构,从clusterIP到光电半导体,再从clusterIP到企业管理

clusterIP作为k8s中的服务&#xff0c; 也是其他三个服务的基础 ~]$ kubectl create service clusterip externalname loadbalancer nodeport 客户端的流量到service service分发给pod&#xff0c;pod由控制器自动部署&#xff0c;自动维护 那么问题是service的可用…